QA Automation test task - mass user registration load test

Motivation and context

Since I haven't found any particular load/performance tests in the repo, I decided to start making them myself. I think locust can be a useful instrument for load testing, since it's developer-friendly and easily integrated into Python code.
In this particular example I start a locust env with a runner and greenlets and start swarming the endpoint with POST requests from api_client.auth_api.create_register populated by Faker and secrets data, measuring the average response time and asserting for 0 failures before closing the server instance.
How has this been tested?

This test has been launched on a (custom) Arch Linux dev env, using python3.9, pytest 6.2.5 and locust 2.13.0.
Checklist

[x] I submit my changes into the develop branch
[ ] I have added a description of my changes into CHANGELOG file
[ ] I have updated the documentation accordingly
[ ] I have added tests to cover my changes
[ ] I have linked related issues (read github docs)
[ ] I have increased versions of npm packages if it is necessary (cvat-canvas,
cvat-core, cvat-data and cvat-ui)

License

[x] I submit my code changes under the same MIT License that covers the project.
Feel free to contact the maintainers if that's a concern.

/check

Well, I have a couple questions:

Some of the checks fail because faker and locust aren't in the default requirements list. May I add them as part of this PR as well or should I open another PR for this?

Pylint seems to mark the check upon finding an "unnecessary lambda" warning here as failed, however rewriting the function like it "should" be:

def quit_runner(environment)
    return environment.runner.quit()

# And then, inside the main function
gevent.spawn_later(10, quit_runner(environment=env))

doesn't get to start the default runner at all (response data at this line isn't printed, only with lambda warning suppressed). I guess I'll disable the warning in this test for now: # pylint: disable=unnecessary-lambda, until I find a more compatible runner.

Well, I have a couple questions:

Some of the checks fail because faker and locust aren't in the default requirements list. May I add them as part of this PR as well or should I open another PR for this?
Pylint seems to mark the check upon finding an "unnecessary lambda" warning here as failed, however rewriting the function like it "should" be:

def quit_runner(environment)
    return environment.runner.quit()

# And then, inside the main function
gevent.spawn_later(10, quit_runner(environment=env))

doesn't get to start the default runner at all (response data at this line isn't printed, only with lambda warning suppressed). I guess I'll disable the warning in this test for now: # pylint: disable=unnecessary-lambda, until I find a more compatible runner.

Generally, you can feel free to do everything to make PR "green", if disabling of some checks seems unfounded for us, we will mention it in review.

Update tests requirements.txt  so that CI can run your test
In case with this with pylint warning it's looks fine to me to disable it.

@kirill-sizov For some reason CI api tests take forever to load. My assumption is that it may have something to do with gevent coroutines. Can you check the logs, please? I can run the Actions locally with act, but it'll take some time to setup.

@kirill-sizov Right now the test cannot pass the CI rest_api checks because locust uses a monkey patching gevent call in its own code, which is executed after urllib3 has already loaded the inbuilt Python ssl module:
.env/lib/python3.9/site-packages/locust/__init__.py:11
  ~/Development/cvat/.env/lib/python3.9/site-packages/locust/__init__.py:11: MonkeyPatchWarning: Monkey-patching ssl after ssl has already been imported may lead to errors, including RecursionError on Python 3.6. It may also silently lead to incorrect behaviour on Python 3.7. Please monkey-patch earlier. See https://github.com/gevent/gevent/issues/1016. Modules that had direct imports (NOT patched): ['urllib3.util.ssl_ (~/Development/cvat/.env/lib/python3.9/site-packages/urllib3/util/ssl_.py)', 'urllib3.util (~/Development/cvat/.env/lib/python3.9/site-packages/urllib3/util/__init__.py)'].
    monkey.patch_all()

Which leads to infinite recursion during CI checks making them take too long to complete:
tests/python/rest_api/test_resource_import_export.py:102: in _idempotent_saving_resource_to_cloud_storage
    _save_resource_to_cloud_storage(*args, **kwargs)
tests/python/rest_api/test_resource_import_export.py:75: in wrapper
    client = define_client()
tests/python/rest_api/test_resource_import_export.py:45: in define_client
    s3 = boto3.resource(
.env/lib/python3.9/site-packages/boto3/__init__.py:102: in resource
    return _get_default_session().resource(*args, **kwargs)
.env/lib/python3.9/site-packages/boto3/session.py:384: in resource
    client = self.client(
.env/lib/python3.9/site-packages/boto3/session.py:258: in client
    return self._session.create_client(
.env/lib/python3.9/site-packages/botocore/session.py:847: in create_client
    client = client_creator.create_client(
.env/lib/python3.9/site-packages/botocore/client.py:86: in create_client
    client_args = self._get_client_args(
.env/lib/python3.9/site-packages/botocore/client.py:355: in _get_client_args
    return args_creator.get_client_args(
.env/lib/python3.9/site-packages/botocore/args.py:99: in get_client_args
    endpoint = endpoint_creator.create_endpoint(
.env/lib/python3.9/site-packages/botocore/endpoint.py:293: in create_endpoint
    http_session = http_session_cls(
.env/lib/python3.9/site-packages/botocore/httpsession.py:203: in __init__
    self._manager = PoolManager(**self._get_pool_manager_kwargs())
.env/lib/python3.9/site-packages/botocore/httpsession.py:222: in _get_pool_manager_kwargs
    'ssl_context': self._get_ssl_context(),
.env/lib/python3.9/site-packages/botocore/httpsession.py:231: in _get_ssl_context
    return create_urllib3_context()
.env/lib/python3.9/site-packages/botocore/httpsession.py:77: in create_urllib3_context
    context.options |= options
/usr/lib/python3.9/ssl.py:603: in options
    super(SSLContext, SSLContext).options.__set__(self, value)
/usr/lib/python3.9/ssl.py:603: in options
    super(SSLContext, SSLContext).options.__set__(self, value)
E   RecursionError: maximum recursion depth exceeded
!!! Recursion detected (same locals & position)

The overall monkeypatching was introduced already in version 0.8, so downgrading is not an option, their Python is outdated.
Everything else checks fine. I'll continue investigating, but I already consider moving to another load testing tool at this point.


Feature - Add private upload to upload token based video upload

Add private upload to upload token based video upload.
Can you add the ability to upload private videos via the typescript package we want to keep our backend implementation as simple as possible. We will only Auth on the backend return a upload token and upload the video. But it must be public = false.

@tpak
Hi @olivierapivideo, I understand. Is it safe to say that it is a feature, the fact that I can currently upload public video without creating it first. from the frontend?
Because if it's a bug we will have to keep in mind it might break in future releases.
Maybe a feature request for our use case would be to add a setting where you can set your default public attribute to false instead of true? Then we can use this repo as is in the case that this is not a bug that will get fixed.

@rvddekock
Hi @olivierapivideo and thanks for the timely replies. This all makes sense to me and think we can work with it. Is there a GitHub issue in one of your many repo's we can subscribe to with regards to the public attribute so we know when it advances? We'll probably move from POC to development and just keep an eye on it. I think you can understand why it's valuable to our use case.
Regards
-c

@olivierapivideo  Hi Oliver, Thanks that is great news about the upcoming feature.


Retooling Build Tools

I spent some extra time in the park this morning pondering things in #1350
I've come up with some thoughts of how I think we should move this forward to improve workflow for npm and bower.
For reference "pm folder" in this discussion is referring to the local package managed folder  i.e. node_modules/semantic-ui or bower_components/semantic-ui.
Problems
Nothing that should be permanent should exist in a PM Folder
Maintainers of both package managers have made it explicit that these folders may be wiped during updates, and generally no one wants to cd into their components folder.
This means that an install should generally not change files inside of its own directory, because it can't expect them to exist on update. If it does has to modify a file in its own directory, than it must make sure that it is trivial to regenerate this file on update.
LESS import must be hard-coded inside definitions
Currently LESS theming and path variables are set in a theme.config file which is expected to exist in PM folder src/. This is because any import paths in a definitions must be hard-coded to something because definition files can't be modified after install or will risk losing changes (see issue above).
If LESS theming variables were added as run-time variables pulled in from semantic.json, then only our build tools would work with our less files. Which is a functional solution, but would not allow the less source to be compiled without our build tools. This might alienate developers.
Proposal Summary

Gulp install will check if installed with npm or bower.
If using PM it will suggest user paths in project root.
Install will also create a gulpfile at project root or add tasks to an existing one.
Install will create paths if not currently available
Install will modify PM folder file src/theme.config to a single line file that imports a user's real theme.config located outside of pm folder.
This file will be considered a temporary file (that could be lost on update/upgrade) and should be automatically regenerated if not found by a backup value stored in semantic.json

Proposal
1) Install tools should recursively search for a semantic.json across parent directories.
This would mean having to modify the project's gulpfile to walk recursively through each parent directory until it hit a semantic.json.
Having a semantic.json at project root would be similar to having a gulpfile gruntfile or package.json or karma.json which is a familiar idea for developers, and reduce the barrier for entry for new developers.
2) Theme folder should include two paths. One for default theme inside PM folder, and another for user themes in project root.
This is to deal with package managed folders being wiped on update or machine change. We will need to modify theme.less to use separate paths for default theme and user themes.
3) User folders should be created on install
Currently the install tool expects you to set paths that already exist. We will need to modify the install task to check the specified path then offer to create the directory if unavailable
4) Install should suggest sensible default paths based on install location
The install tools should check whether it is in a PM folder then suggest a default paths that exists at project root escaping the PM folder.
My suggested setup would be
./node_modules/semantic-ui/
./semantic.json
./semantic/
./semantic/theme.config
./semantic/themes/
./semantic/dist/

5) If a Gulpfile is found at project root during install. We should ask the user if we can modify it to import our own tasks. If no gulpfile exists we should offer to make it.
Developers do not want to cd into a PM folder to run gulp tasks. They want to run it from their project root.
If a gulpfile exists already this would have to be some magic, which imported our tasks as build ui, watch ui by modifying the existing gulp file.
If a gulpfile did not exist, this would just a copy and paste of our gulp file to project root, with build, watch also aliased as build ui watch ui
6) Remove theme config from PM managed src/theme.config, replace with single line @import of user specified theme.config path.
This would be the only pm managed file that would be modified, it would only include a single line which would specify user path from install
@import '../../semantic/theme.config'

Because this file exists in the pm folder, it may be lost on update upgrade or machine change, so I propose including a backup of this path in semantic.json.
Now here's where the magic comes: when a gulp task is run, it checks to see if the PMed src/theme.config exists, if it does not exist, it automatically regenerates it from the backed up path outside of the PM folder in  semantic.json.
Thoughts /  Involvement
If you would like to contribute with this feature, or have suggestions feel free to comment here. I'll be organizing a feature branch for this where we can begin work on retooling after we can come to some form of consensus.

The next release will allow for less files to be compiled together. There is now a single include semantic.less that can be used, or you can just roll your own.
/* import component */
@import 'src/definitions/elements/button';
/* import everything */
@import 'src/semantic';

See merge commit
Hopefully this will make everyone's life easier.
Once meteor branch merges the project will also have much simpler gulp tasks, each defined in their own file, which can be imported into external gulp files.
var
  watch = require('path/to/semantic/tasks/watch')
;
gulp.task('watch ui', 'Watch Semantic UI', watch));

Explore meteor branch
#1385 #1147 #675 #1780 #1498 #1350 #1441

1.9.0 is now published I encourage anyone who had issues before with build tools to check it out.

Hey y'all what's up with this project and whats the 411 on it? Can I bower install now?

Project has since moved to 2.1 version and there are installation instructions here:
http://semantic-ui.com/introduction/getting-started.html
and if you only need package, then here:
http://learnsemantic.com/guide/download.html

I don't know why, but this is totally not working. I tried to work with bower and the semantic.json but it seams like the paths from semantic.json aren't really used because it only works if my theme.config is inside my root although I have specified that it should be in my conf/semantic-ui/
I also added my site overrides to conf/semantic-ui/site but it doesn't use it. I than have seen that there are also paths in the theme.config so I changed them. but it also doesn't work. The build process isn't done. It really frustrating that the build process work with a broken configuration but simply doesn't do anything.

one year, and still the process of using semantic-ui with webpack is a pain in the ass

It's really bad. I love Semantic UI because of the style, the components and so on. But the build process and because of the fact, that there is no SASS version, I need to consider to use other frameworks for my feature projects :(

The components still rely on the hard-coded src/theme.config file. (and we're now on the 2.2.0 release!)

1.9.0 is now published I encourage anyone who had issues before with build tools to check it out. It should solve for the issues discussed specifically in this thread.
@jlukic

It solves issues with importing Semantic's LESS file directly, but with bower... no luck. I changed semantic.json residing outside bower_modules to point to the correct paths, but Semantic still relies on hard-coded paths.
It's a pity that such an awesome web framework has this build tool issues.

Why is this closed? Two years and still the same issues.
 I have spent countless hours just to change a single color and still I haven't managed to do so without hard-coding everything.

@Pithikos anyway, i find these kind of frameworks bad by design; you can't customize anything without broke some other thing; you should consider tachyons.io that uses composition. this way you could to create unlimited components.

SASS or Stylus.  This project needs to migrate over to something more modern and sane and in particular, in such a way that doesn't require gulp as a dependency.  I wish I could use all of this, but the whole thing is stuck in 2010.


Binding of table based on deep structures causes dump

Dear,
When using a complex data structure table -  eg a proxy data table - as input for the method 'ZCL_EXCEL_WORKSHEET->BIND_TABLE' then a dump  occurs as the method 'SET_CELL' cannot handle a field with a complex type ...
Eg in the above table the first field 'controller' is actually an internal table ...
I would propose that the field catalog rendering method - ZCL_EXCEL_COMMON=>GET_FIELDCATALOG  -  takes into account complex data dictionary types and prevents them from being returned ( eg remove fields of type 'h' (internal table)) .. or the concept should be adjusted to allow complex data structures and render them aquadately in the EXCEL ( but not sure that is 'usefull' ).
Kind Regards,
Steven

Thank you for this proposal. If possible, could you help by proposing a pull request? Thank you.

I think this is already fixed - abap2xlsx behaves like SALV now
CL_SALV_DATA_DESCR=>READ_STRUCTDESCR handles fields and nested structures -> tables are ignored
`
REPORT zissue_423.
CONSTANTS gc_save_file_name TYPE string VALUE 'Issue_423.xlsx'.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
DATA(lo_excel) = NEW zcl_excel( ).
DATA(lo_worksheet) = lo_excel->get_active_worksheet( ).
TYPES: BEGIN OF ty_name_value1,
name  TYPE string,
value TYPE string,
END OF ty_name_value1,
ty_name_value1s TYPE STANDARD TABLE OF ty_name_value1 WITH DEFAULT KEY.
TYPES: BEGIN OF ty_name_value2,
inner_name  TYPE string,
inner_value TYPE string,
inner_table TYPE ty_name_value1s,
END OF ty_name_value2,
ty_name_value2s TYPE STANDARD TABLE OF ty_name_value2 WITH DEFAULT KEY.
TYPES: BEGIN OF ty_line,
name  TYPE string,
value TYPE string,
table TYPE ty_name_value2s.
INCLUDE TYPE ty_name_value2.
TYPES: END OF ty_line,
ty_lines TYPE STANDARD TABLE OF ty_line WITH DEFAULT KEY.
DATA: out_table TYPE ty_lines.
out_table = VALUE #( ( table = VALUE #( ( inner_name = 'TName1' inner_value = 'TValue1' inner_table = VALUE #( ( name = 'ITName1' value = 'ITValue1' ) ) ) ) name = 'Name1' value = 'Value1' ) ).
cl_salv_table=>factory( IMPORTING r_salv_table = DATA(salv_table)
CHANGING  t_table      = out_table ).
salv_table->display( ).
lo_worksheet->bind_table( ip_table = out_table ).
lcl_output=>output( lo_excel ).
`


Docs/ShellJob: Using a pre-configured code

See the question from AiiDA discourse, we need to update the docs, e.g., take the example from https://aiida-shell.readthedocs.io/en/latest/howto.html#defining-a-pre-configured-code.

closed by #326


Locales not working properly

Hello, when i installed French language pack all strings translations was ok but dates not translated properly :
When i'm on profile page  i have :
Premier accès au site
Wednesday 23 August 2023, 10:31  (12 min 13 s)
Dernier accès au site
Wednesday 23 August 2023, 10:43  (maintenant)
As you can see, dates day name and month name not being translated.
I've tested this but this not solve this issue :
RUN apk update
RUN apk add tzdata
RUN cp /usr/share/zoneinfo/Europe/Paris /etc/localtime
RUN rm -r /usr/share/zoneinfo/Africa &&
rm -r /usr/share/zoneinfo/America &&
rm -r /usr/share/zoneinfo/Antarctica &&
rm -r /usr/share/zoneinfo/Arctic &&
rm -r /usr/share/zoneinfo/Asia &&
rm -r /usr/share/zoneinfo/Atlantic &&
rm -r /usr/share/zoneinfo/Australia &&
rm -r /usr/share/zoneinfo/Indian &&
rm -r /usr/share/zoneinfo/Mexico &&
rm -r /usr/share/zoneinfo/Pacific &&
rm -r /usr/share/zoneinfo/Chile &&
rm -r /usr/share/zoneinfo/Canada
RUN echo "Europe/Paris" > /etc/timezone
Thanks'

Hello,
Thank you for reaching out. The issue you're experiencing is due to the fact that the musl libc used by Alpine lacks support for locales. This is why the day and month names are not being translated properly.
To address this, you can try adding locale support to your Alpine Docker image. Here's a guide that provides a solution for this: Add Locales to Alpine Linux Docker Image.
I apologize for the inconvenience and hope this helps resolve your issue. Let me know if you have any further questions or concerns.
Best regards

Hello, this not solve the issue :(
but it work on ubuntu i will stay on it
thanks for assistance
I hope this will be a next fix in ur todo list :p

As previously mentioned, the issue isn't with our container but stems from Alpine Linux's use of musl instead of libc. This is a known limitation and is listed on their open issues: https://wiki.musl-libc.org/open-issues.html. Once the musl team addresses this, it will be reflected in our container. In the interim, I recommend using Ubuntu as you suggested.
Best regards.


Fix remove last to unity

I'm not sure we want to remove ToUnity functions. We at least need some docs on how to replace them. Maybe that change should be in a different PR.


JR 0.9 breaks when using sort at the same time as including a has_one association

So, we're experiencing a really really bizarre bug... If we have a request, let's say this one:
GET /reviews?filter[anime_id]=10052&include=user,user.favorite_character&sort=-likes_count
You'd rightfully assume that it would do sort(likes_count: :desc), right?  It did so in JR 0.8, but in 0.9 we're getting characters.likes_count — which doesn't exist!  I've managed to track down the case that triggers this: if an included association is a has_one association in AR, it always attempts to apply the sort property to that, no matter how deeply nested or whether the column exists.
We've seen this consistently across multiple resources since we started using the JR 0.9 beta.  We're using Rails 4.2.1

@NuckChorris Please check out #935 and see if it fixes the issue for you.

Wow, that was fast!  Huge thanks, that patch seems to work perfectly!


[Map] DM-BCE_FAB

Hash: 7739ac4d035d93642c3fa10fc7250ebbb8148d69
Current name: DM-BCE_FAB
According to the readme, the author is Hellfreak7

Updated


Add ability to delete an application from the application detail page

What would you like to be added:
Make it possible to delete an application from the application detail page (currently, can only do it via the application list page)
Why is this needed:

fixed by PR #3773


sdf 1.12: rename state subelements with _state suffix

🎉 New feature
Part of https://github.com/gazebosim/sdformat/issues/632
Summary
There is some overlap in the names used for elements in the //world/state specification and elsewhere, for example the model_state.sdf file included in state.sdf defines an element named model. This has caused challenges with aliasing in XSD (see https://github.com/gazebosim/sdformat/issues/632 and https://github.com/gazebosim/sdformat/pull/643), and it would be simpler if some of these elements had different names (for example by appending a _state suffix). This pull request is a work-in-progress to append this suffix to the relevant state tags in SDFormat 1.12 with automatic conversion of state elements defined in earlier versions of the spec. I have the conversion partially working, but have run into an issue with the Converter class, which does not act on all sibling elements, but only to the first child element for a given <move> conversion.
Test it

Checklist

[X] Signed all commits for DCO
[X] Added tests
[ ] Added example and/or tutorial
[ ] Updated documentation (as needed)
[ ] Updated migration guide (as needed)
[ ] Consider updating Python bindings (if the library has them)
[ ] codecheck passed (See contributing)
[ ] All tests passed (See test coverage)
[ ] While waiting for a review on your PR, please help review another open pull request to support the maintainers

Note to maintainers: Remember to use Squash-Merge and edit the commit message to match the pull request summary while retaining Signed-off-by messages.

as an alternative to the partial support for backwards compatibility in this pull request, I've opened an alternative pull request in https://github.com/gazebosim/sdformat/pull/1455 that renames the state subelements as a breaking change

see #1455 instead


Add title and navigation box to preview

Hi.
I added the title and navigation box to the preview, along with some CSS snippets. I also added padding to the home page.

Could you fix the line endings? Whenever the last newline is added/removed it makes the last line in the file get changed.

Sorry, I feel dumb asking this, but, can you elaborate.

Basically, every line in the file should terminated with the newline character (which often shows up as one blank line at the end of each file). Basically, make sure each file has one blank line at the end.

Ah, I see. Thanks for telling me that. I fixed it.


Updated location of asset file for angularFileUpload

This addresses #722. I've updated the default & production assets config to use angualr-file-upload's public/lib/angular-file-upload/dist/angular-file-upload.min.js
Currently, after installing the Bower dependencies, the patch version of angular-file-upload is breaking the MEAN app.

This PR is a duplicate of #724, which seems to be more accurate; as @simison is using the src/module.js asset for the default config.

Closing since #724 is the right fix.


add pool percentage

"What percentage of the overall hash rate is the hash rate of this pool" added

sample


Chip OnDelete no longer functions in Multiple Select

Demonstration of the issue in this slightly modified multiple select demo:
https://codesandbox.io/s/material-demo-96yeu?fontsize=14&hidenavigation=1&theme=dark
This stopped working sometime in the last few versions. Clicking on the Chip delete button now simply opens the select list menu again.

I encountered the same problem.

Yeah I have the same problem here!

For anyone else facing the issue who needs a workaround, I borrowed code from another issue and made this component, just use it in place of Chip for now:
import DeleteIcon from "@material-ui/icons/Cancel"
export function DeletableChip(props) {
const { onDelete, value } = props;
return (
Boolean(onDelete) ? (
<Chip
value={value}
deleteIcon={
<div onMouseDown={(event) => {
if (!props.disabled && event.button === 0) {
event.stopPropagation()
onDelete(value)
}
}}>
<DeleteIcon className="MuiChip-deleteIcon" style={{margin: '0px 5px 0px 0px'}} />

}
{...props}
/>
) : (  )
)
}

Duplicate of #18658


Firefox: Safe Owners are displayed as UNKNOWN

Title/Description
In Firefox, the owners are displayed with the wrong "UNKNOWN" name
Environment

Browser: Firefox

Steps to reproduce

Create a Safe
Add some owners with unique names

Expected result
The saved names should be displayed
Obtained result
Each owner is displayed as UNKNOWN.

Closing because it's not a bug. We're not storing the owner/safe names on the backend so when you witch to another browser, they won't be displayed.


Rely on all of RSpec in development

Without this, we don't load rspec-mocks or rspec-expectations which
means none of the tests can run. Previously this worked because fuubar
required the full rspec library, but as of 2.2 it only requires
rspec-core.
https://github.com/thekompanee/fuubar/commit/a6b65681ee3a91033f7710287a20c63c5a903d07
This only adds a development dependency, so it won't undo the work in #96

Coverage remained the same at 94.098% when pulling 0c29d5249f8a26c16498072a2aa50bab8d364e40 on packrat386:rspec_dependency into 70d024c64ae2326a3b1a8c286b247a66f40ed2a9 on philostler:develop.

Coverage remained the same at 94.098% when pulling 0c29d5249f8a26c16498072a2aa50bab8d364e40 on packrat386:rspec_dependency into 70d024c64ae2326a3b1a8c286b247a66f40ed2a9 on philostler:develop.

Coverage remained the same at 94.098% when pulling 0c29d5249f8a26c16498072a2aa50bab8d364e40 on packrat386:rspec_dependency into 70d024c64ae2326a3b1a8c286b247a66f40ed2a9 on philostler:develop.

Coverage remained the same at 94.098% when pulling 0c29d5249f8a26c16498072a2aa50bab8d364e40 on packrat386:rspec_dependency into 70d024c64ae2326a3b1a8c286b247a66f40ed2a9 on philostler:develop.

Coverage remained the same at 94.098% when pulling ae7f58fb542284893b15936b4c918a277e3c08cb on packrat386:rspec_dependency into 70d024c64ae2326a3b1a8c286b247a66f40ed2a9 on philostler:develop.

Coverage remained the same at 94.098% when pulling d0a5ad71526bb68a86774fb74f0cacd27d5c3b09 on packrat386:rspec_dependency into 70d024c64ae2326a3b1a8c286b247a66f40ed2a9 on philostler:develop.

Coverage remained the same at 94.098% when pulling 0dfcd696686f608ad2e1fd2467e25ec1036ecf7e on packrat386:rspec_dependency into 70d024c64ae2326a3b1a8c286b247a66f40ed2a9 on philostler:develop.

Thanks for fixing this!


update gemspec to 0.2.3

Pull requests into cqm-parsers require the following. Submitter and reviewer should :white_check_mark: when done. For items that are not-applicable, note it's not-applicable ("N/A") and :white_check_mark:.
Submitter:

[ ] This pull request describes why these changes were made.
[ ] Internal ticket for this PR:
[ ] Internal ticket links to this PR
[ ] Code diff has been done and been reviewed
[ ] Tests are included and test edge cases
[ ] Tests have been run locally and pass

Reviewer 1:
Name:

[ ] Code is maintainable and reusable, reuses existing code and infrastructure where appropriate, and accomplishes the task’s purpose
[ ] The tests appropriately test the new code, including edge cases
[ ] You have tried to break the code

Reviewer 2:
Name:

[ ] Code is maintainable and reusable, reuses existing code and infrastructure where appropriate, and accomplishes the task’s purpose
[ ] The tests appropriately test the new code, including edge cases
[ ] You have tried to break the code

Codecov Report

Merging #42 into v0.2.x will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           v0.2.x      #42   +/-   ##
=======================================
  Coverage   83.27%   83.27%
=======================================
  Files          99       99
  Lines        4758     4758
=======================================
  Hits         3962     3962
  Misses        796      796

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 fea9147...67b1d60. Read the comment docs.


Suggested edit to message passing notation in junction tree notes

I believe in line with the notation earlier in the notes and discussion of message passing, the sentence "The factor $$\tau_j(x_j)$$ can be thought of as a message that ..." should instead be "The factor $$\tau_{jk}(x_k)$$ ..." as we've summed over the values of variable $$x_j$$, leaving a new factor that is a function of $x_k$, i.e. the message from $$x_j$$ to $$x_k$$.

"The factor $$\tau_j(x_j)$$" is actually correct as written. $$\tau_j(x_j)$$ indeed summarizes all of the information from the subtree rooted at $$x_j$$. I have made this notation more consistent by rewriting $$\tau_{jk}(x_k)$$ as $$\tau_k(x_k)$$.

Oh okay, thanks for clarifying. And thanks for all of the effort on these notes, they are wonderful!
To followup: isn't the subscript redundant then? As a reader, and having cross referenced with other message passing notes, the double index subscript feels much clearer, as it makes explicit the destination and source nodes in the message passing algorithm.
Additionally, the single index subscript notation seems inconsistent with the explicit $$m_{i -> j}$$ notation used later on once the $$\tau$$ notation is replaced by messages, as foreshadowed in Line 21 (copying from your edit):
"The factor $$\tau_j(x_j)$$ can be thought of as a message that $$x_j$$ sends to $$x_k$$ that summarizes all of the information from the subtree rooted at $$x_j$$."
---> this is a bit unclear as it doesn't have explicit $$x_k$$ dependence, and showing the dependence on the 'sender' node $$x_j$$ isn't possible without a double subscript.
Also on line 21: "At each step, we will eliminate $$x_j$$; this will involve computing the factor $$\tau_k(x_k) = \sum_{x_j} \phi(x_k, x_j) \tau_j(x_j)$$, where $$x_k$$ is the parent of $$x_j$$ in the tree."
---> If $$\tau_k(x_k)$$ indeed is all of the information from the subtree rooted at $$x_k$$, the notation as used in this line precludes there existing multiple children of node $$x_k$$. I think this would also be clearer if the original notation of $$\tau_{jk}$$ was kept to make explicit the child-parent/sender-receiver relationship.
If you agree, I'm happy to make changes. Thanks for looking!

Thanks for taking the time to read these notes so carefully! Your point about potentially having multiple children is something I overlooked, so I'm going to re-open this pull request. Will come back and think through this more thoroughly. I think there is significant room to improve this section of the notes. Just a small example: the notes on VE never mention "forming cliques" of a certain size and instead talks about the size of factor scopes. I'll take a deeper pass through this when I have time. Feel free to continue making changes as you see fit and I'll see what makes sense to incorporate!


ConnectedComponent

Is there a way to create a class which will be a base class for Smart Components, instead of using export default connect(select)(CounterContainer);?
So it would looks like:
export default CounterContainer extends ConnectedComponent {
  select(state) {
    return {
      counter: state.counter
    };
  }
  render() {
    const { dispatch, counter } = this.props;
    return (
      <Counter counter={counter}
               increment={() => dispatch(increment())} />
  );
}

I'm not sure, probably it is not possible to implement connector as a base class or that is not a right  way of how it should be done in javascript.

Inheritance is discouraged in React code and should always be avoided for components. Composition solves the same problem in a way that is much easier to maintain.
Consider this:

You'd have to remember to call super from lifecycle hooks, or component would break in a weird way.

If React Redux starts to use a new lifecycle hook in its internal implementation, your existing code might break even if it worked before, because you might have been forgetting to call super.

Thanks for a good explanation! Will avoid using it in such way!
Just wanted to make using of connectors more transparent than 'connector(select)(Component)' calls.

If you want a neater syntax you can use ES7 decorators proposal implemented by Babel.
Note that it's experimental and may change.
@connect(select)
export default class MyComponent { }

Thanks, I've already noticed that in examples, but still want to avoid using experimental ES7 parts.

A few more comments on React, inheritance and composition:
https://github.com/facebook/react/issues/613#issuecomment-29280175
https://github.com/facebook/react/issues/613#issuecomment-76584019
https://github.com/facebook/react/issues/613#issuecomment-76621639


Include size button pagination and fix depreacted lib in package.json

What kind of change does this PR introduce? (check at least one)

[ ] Bugfix
[X] Feature
[X] Code style update
[ ] Refactor
[ ] Build-related changes
[ ] Other, please describe:

Does this PR introduce a breaking change? (check one)

[ ] Yes
[X] No

If yes, please describe the impact and migration path for existing applications:
The PR fulfills these requirements:

[X] It's submitted to the develop branch (or to a previous version branch), not the master branch
[ ] When resolving a specific issue, it's referenced in the PR's title (e.g. fix #xxx[,#xxx], where "xxx" is the issue number)
[X] All tests are passing
[ ] New/updated tests are included

If adding a new feature, the PR's description includes:

[ ] A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it)

Other information:

duplicate PR #121


Prevent preview generation of device files but still list them.

One of the recent commits tried to remove the ability to complete device files.
Unfortunately, when completing a link to a device file, or any path not starting with /dev
directly, still has the potential to kill vim. Consider this:
ln -s /dev/stdin dead

Then try completing ./dea<TAB> and nvim is dead as it tries to read from the pty /dev/stdin.
Instead of preventing preview generation based on the path, it would be much better to stat
the file beforehand and return an empty preview in case the file is not a regular file or directory (or a symlink to one of these).
Stat can follow symbolic links, and they should be to prevent the above scenario.
On a related note: I seem to be unable to complete anything with more than two path component. No completion for /dev
is ever shown, but I suppose this is not directly related to this bug.

Fair. Files with vim.loop.fs_stat(path).type == 'char' can be ignored.


[Feature Request]:

Is there an existing issue for this?

[X] I have searched the existing issues and checked the recent builds/commits

What would your feature do ?
请加入Serverless支持如Vercel等。
Proposed workflow
请加入Serverless支持如Vercel等。
Additional information
No response

如果需要Serverless支持则必须需要一个API接口。


Parse fails in simple option with subrule

Though in tutorial where clause in select works, a similar option with subrule fails like this:
    $.RULE("struct", () => {
        $.CONSUME(Identifier)
        $.CONSUME(LCurly)
        $.OPTION(() => {
            $.SUBRULE($.member)
        })
        $.CONSUME(RCurly)
    })

    $.RULE("member", () => {
        $.CONSUME(Semicolon)
    })

The option is not working for "abc{}". It always expects semicolon.
For full test file, please refer to here
Any idea?

You forgot to call this.performSelfAnalysis();

https://sap.github.io/chevrotain/docs/tutorial/step2_parsing.html#structure

Oh. Thanks for taking time answer my silly question.

I never figured out how to assert that performSelfAnalysis was invoked without cause a performance regression. But now that I think about it perhaps this inspection can be added to the input setter.

Any future similar issues would now be automatically detected by Chevrotain. 😄
See: https://github.com/SAP/chevrotain/pull/988
I am afraid this could be a breaking change for a small subset of existing Chevrotain Parsers so I will need to release a major version.

Re-opening until this is released and documented as a breaking change.


pictures in target and searching folder maybe wrong order

I found that the pictures in target and searching folder are put in the wrong order, you should switch them

Yes, thank you very much. I will fix it.

I think they are right ordered. For target images, you will always and the object you want to track in the middle of the images (with half height and half width). But for the search images, It is not guaranteed


Limit stream upload length according to bodyContentLength specified

Issue Link :link:

Can't upload a specific length of MultipartFormData.BodyPart.bodyContentLength from an InputStream #3714
Goals :soccer:

Limit the writing of a MultipartFormData input stream to only the specified content length,
Implementation Details :construction:

Add MultipartFormData.BodyPart.bodyContentLength to constraint the while loop doing the writing.
Testing Details :mag:

Created test MultipartFormDataWriteEncodedDataToDiskTestCase.testWritingEncodedStreamBodyPartToDiskRespectingBodyLength.

@hvsw, thanks for the PR! I'm still reviewing, but can you rebase to pick up the visionOS support I added? It'll be good to ensure everything still passes there.

@jshier rebased. 👍

@jshier thanks for merging it! What's the release process now?

I'm working on some other changes right now, so there will probably be a few more PRs and then it'll go out as part of 5.8.

Awesome! Do you have an ETA for 5.8? I'm trying to do some planning here on my side.


Dropdown remains fixed in place and doesn't scroll with parent container

The dropdown does not move along with the page when it is open and we scroll the page.

<SelectPanel
title={${label ? label : 'Select'}}
subtitle={subtitle}
renderAnchor={({
children,
'aria-labelledby': ariaLabelledBy,
...anchorProps
}) => (
<Button
trailingAction={TriangleDownIcon}
trailingIcon={() => {
if (selected?.length > 0)
return {selected?.length};
                        return null;
                    }}
                    aria-labelledby={` ${ariaLabelledBy}`}
                    {...anchorProps}
                    aria-haspopup="dialog"
                    sx={{
                        fontWeight: 600,
                        '[data-component="buttonContent"]': {
                            maxWidth: '92px',
                            justifyContent: 'start',
                            overflow: 'hidden',
                            whiteSpace: 'nowrap',
                            textOverflow: 'ellipsis',
                        },
                        '[data-component="input"]': {
                            backgroundColor: '#F7F7F7',
                        },
                    }}
                >
                    {label}
                </Button>
            )}
            placeholderText={placeholder ? placeholder : 'Filter List'}
            open={open}
            onOpenChange={setOpen}
            items={filteredItems}
            selected={selected}
            onSelectedChange={handleSelectedChange}
            onFilterChange={setFilter}
            showItemDividers={false}
            overlayProps={{
                width: 'medium',
                height: 'auto',
                maxWidth: 'medium',
                maxHeight: 'medium',
                anchorSide: 'outside-bottom',
            }}
        />

have code in _https://gist.github.com/surishubham/4c2cf935e082e5c53678911a0793b5ea_

Hi there @surishubham! 👋 Thanks for taking the time to make this issue 🙏
It seems like you're reporting an issue with the SelectPanel component. If so, would you mind filling out an issue using the Bug issue template?
Thanks!

sure


Unix/OS X Video streaming for parrot bebop

Hello,
as you suggested, I adapted the example of jumping sumo change posture as you suggested and I pasted at the end of the issue.
It worked, but I'm truly struggling doing the same for video streaming.
No matter what params I change I allways get (even on the pilot example) this message, and I just can't get the video streaming.
Could you bring some help please?
I'm on OS X 10.10 by the way, if you need any other information I can provide it.
[ERR] ARNETWORK_Receiver | 14:12:14:687 | ARNETWORK_Receiver_ThreadRun:265 - data received, error: Insufficient free space in the buffer
[ERR] ARNETWORK_Receiver | 14:12:14:709 | ARNETWORK_Receiver_ThreadRun:265 - data received, error: Insufficient free space in the buffer
[ERR] ARNETWORK_Receiver | 14:12:14:727 | ARNETWORK_Receiver_ThreadRun:265 - data received, error: Insufficient free space in the buffer

To connect to a Bebop drone, you can use the JumpingSumoChangePosture sample (Samples/Unix/) and just change the ip address to <IP_ADDRESS> and change the commands sent (in sendPilotingPosture function) to be a Bebop command.
Typically, you can replace the ARCOMMANDS_Generator_GenerateJumpingSumoPilotingPosture by ARCOMMANDS_Generator_GenerateARDrone3PilotingTakeOff and ARCOMMANDS_Generator_GenerateARDrone3PilotingLanding (a while after the first one). (Don't forget to delete the last parameter posture).

[SOLVED] - very soon I'll post working code.

Hi Heitzek,
Could you let me know how you solved this issue? I'm working on the same thing now.
Thanks!

sure, give me an e-mail and I'll send you full working code

Thanks! It's<EMAIL_ADDRESS>

Hi Heitzek! Have you worked out video streaming from the Bebop?

Hi Heitzek,
Can you please share the working code of bepop in Linux. email address -<EMAIL_ADDRESS>

Hi, you can check the following example here https://github.com/pierrezurek/Samples/tree/master/Unix/BebopDroneReceiveStream.

Thanks pierrezurek!!! Do you have code the control the bepop drone from computer.

Hi,
I am getting this error when compile your code. Can you please help me on
this ?
BebopDroneReceiveStream.c:49:28: fatal error: libARSAL/ARSAL.h: No such
file or directory
#include <libARSAL/ARSAL.h>
^
compilation terminated.
On Wednesday, February 4, 2015, pierrezurek<EMAIL_ADDRESS>wrote:

Hi, you can check the following example here
https://github.com/pierrezurek/Samples/tree/master/Unix/BebopDroneReceiveStream
.
—
Reply to this email directly or view it on GitHub
https://github.com/ARDroneSDK3/Samples/issues/7#issuecomment-72912624.

You need to launch the "./SDK3Build.py -t Unix" command in the ARSDKBuildUtils folder before you try to compile the examples. After that step those include files will be found by make in the ARSDKBuildUtils/Targets/Unix/Install/include folder.

The sample is now part of the official samples : BebopDroneReceiveStream
Enjoy !

Hi Djavan-bertrand,
Still i am getting the same error
Steps taken from me

Created the folder name SDK and inside the SDK folder clone the actual code from github https://github.com/ARDroneSDK3/ARSDKBuildUtils.git
After it was downloaded then moved into ARSDKBuildUtils folder and gave below command
./SDK3Build.py -t Unix and build took 8 minutes to complete
Came out of the ARSDKBuildUtils and SDK folder and downloaded the working version of Bepop for Unix from Git Hub https://github.com/ARDroneSDK3/Samples.git
cd /Samples/Unix/BebopDroneReceiveStream and ran the make command
got the same error

BebopDroneReceiveStream.c:49:28: fatal error: libARSAL/ARSAL.h: No such
file or directory
#include <libARSAL/ARSAL.h>
^
compilation terminated.
Can you please tell what steps am i missing here to run your program.
Can you please give us some code for capturing a picture through the camera. There are 4 parameters that needs to be passed, we would like some sample code for the 4th parameter - storage ID. Otherwise, if you have some code for image capture, please share that with us.

Hello vignesh02,
You should only clone https://github.com/ARDroneSDK3/ARSDKBuildUtils.git.
After running ./SDK3Build.py -t Unix, you should have all the sources, including Samples (at the same path than ARSDKBuildUtils, ARSAL, ARCommands and other libs folders).
To sum up (starting in your newly created SDK folder) :

git clone https://github.com/ARDroneSDK3/ARSDKBuildUtils.git
cd ARSDKBuildUtils
./SDK3Build.py -t Unix
cd ../Samples/Unix/BebopDroneReceiveStream
make
make run

Hope this helps,
Djavan

Hi Djavan-bertrand,
Sure will try this option today. Do you sample code to capture image(not video)

Has anyone had luck with using iOS 8 hardware accelerated decoding (covered in WWDC 513) to handle the H.264 Bebop stream?  I'm pretty new to video decoding but here is my attempt.  I don't get any errors so I'm not sure if I'm messing up Apple's APIs or if I'm misinterpreting the Bebop stream.

In the frameCompleteCallback method I pass the uint8_t *frame and uint32_t frameSize to a custom method of my own.
In that method, I read the NALU's start header 0x00 00 00 01 YY, where YY is the type of NALU packet.  (It seems like there are two kinds of frames I receive in frameCompleteCallback.  One has 3 NALUs in it: SPS, PPS followed by a coded slice of an IDR picture.  The other only has 1 NALU: a coded slice of a non-IDR picture.  With the former type, I remove the SPS and PPS before sending the IDR picture NALU to my display layer.)
If the NALU has SPS or PPS parameters, I save those and apply them to my AVSampleBufferDisplayLayer.
If the NALU is a slice of a VCL picture, I replace the first 4 bytes with the length of the entire NALU (not including its header in the length) and package it in a CMBlockBuffer.
I wrap the CMBlockBuffer into a CMSampleBuffer and queue that onto my AVSampleBufferDisplayLayer.

So am I missing any steps here?  Am I wrong in assuming that one NALU will never be spread across more than one frame?  Because I sometimes receive frames with the NALU start code = 0 (Unspecified non-VCL) and I'm not sure what they are.  Should I be getting some decode/display timing information from the NALUs before sending them to the display layer?  Are there any emulation prevention bytes I should be ignoring?
Thanks, and any help is appreciated!

Hi Djavan-bertrand,
I was able to run the program without any issue and video also was streaming.good.
Few Queries
Whether we can stream the video in the HTML5.
What the port that video is stream so that can listen to that port.

Hi Cashews54,
You are right : there are two types of frame that you receive : the i-frames and the p-frames.
I-frames contains 3 NALUs (each of them are separated by the header 00 00 00 01):

the Sequence Parameter Set
the Picture Parameter Set
the frame
P-frames contains only the NALUs of the frame.

Basically, to use the hardware decoding :

Extract the sps and pps (without their headers)
Create a CMVideoFormatDescriptionRef with the sps and pps
Change the header of the frame NAL with its length (length without the header)
Create a CMBlockBufferRef with the frame (the 7th parameter block length is the length of the block including the header)
Create a CMSampleTimingInfo
Create your CMSampleBufferRef with your format, timing and block buffer.

Hope this helps,
Regards,
Djavan

Djavan,
I've done all those steps as you described but it still doesn't work.  I think if I'm messing up any part of the process it could be the CMSampleTimingInfo part.  How should I be creating the timing info?
I've also tried using VTDecompressionSession since AVSampleBufferDisplayLayer hadn't worked for several days.  With VTDecompression I get an error when decompressing the frame, error "kVTVideoDecoderBadDataErr = -12909", so I thought it might have to do with emulation prevention bytes or some sort of byte padding that I should be ignoring.
I could post my code if that would help, but it might be a lot for you to read through.
Thanks for your time!

Cashews54,
Don't bother with the TimingInfo, display the frame immediately as we can't ensure the timing they are received.
To do that, set kCMSampleAttachmentKey_DisplayImmediately to attachments of your sample buffer.
As far as I can remember, your error is due to a bad sample buffer. This can be caused by either a wrong format description or a wrong block buffer.
Be sure to create a format description only when the frame is an i-frame, and save this format for the following p-frames.
To create the format description :

sps and pps should be given without their headers
sizes should be given without headers

To create the block buffer :

if the frame is an i-frame, remove sps and pps from your byte buffer
replace the header with the length of the byte buffer without the header (=> - 4)
create your block buffer with

your memoryBlock = your byte buffer
blockLength = size of your memory block
offsetToData = 0 if you passed a block buffer only containing the frame data and its header
dataLength = the frame data + its header length (if you passed a block buffer only containing the frame data and its header => it is the same value than blockLenght)

Did you check the OSStatus values in return of your create calls in order to narrow the problem ?

I've been checking my OSStatus values every time I run my code, and I know that there are no errors when creating the SPS/PPS format descriptions, the block buffers or the sample buffers.  The only error I get is from VTDecompression when decompressing a frame.  (Perhaps my problem has to do with the attachments to my sample buffer, so I'll try kCMSampleAttachmentKey_DisplayImmediately.)
I have already tried everything I can think of with changing the blockLength, offsetToData, dataLength etc.  I might be making a silly error elsewhere in my code.  I'll give it another try, thanks for your time!

Hi Djavan-bertrand,
I have Bebop sample code(spiderkeys) for takeoff, land off, send pilot command and take picture in C++ and seen you Bebop C code for video streaming. I trying to migrate integrate the C code to existing C++ Code but facing lot of issue. Will be able to migrate your C to C++ for video streaming in future.

Hi vignesh02,
Migration of the SDK to C++ is not in our roadmap for the moment, sorry.
Best regards,
Djavan

Hi Guys,
I installed the sdk and succesfully compiled the sample source. Sadly when i try to execute the code i got the following error:
[ERR] BebopDroneReceiveStream | 16:56:08:557 | ardiscoveryConnect:411 - Error while opening discovery connection : Socket access permission denied
Seems that something in the network address or port is wrong... i try to ping the drone at the configured ip address and the drone responde. Please can you suggest me some solution or idea to perform debug?
All the best

Does somebody have an implementation of the video streaming somewhere out there? It's a shame Parrot isn't simply releasing their own implementation. I would like to play around with the drone on iOS but it's seems to be very painful to just get something "simple" as streaming the video to run. Would be nice if we did not have to reinvent everything on our own. @Cashews54 any chance you could publish your progress so far. I would like to try to contribute a bit.

Hi tuxpeppe ,
I have the same problem ardiscoveryConnect socket error but for the jumping sumo. Did you find any solution? My sumo suddenly stopped operating correctly. The wifi ap seems to work, I can connect to it but running the samples gives me the socket error. Of course the android app just says about the connection problem but not the actual error i.e. the "Socket access permission denied".
Thanks

Hi Guys,
I successfully compiled the SDK. When I execute code in Sample, I got a error named "Socket access permission denied". I had modified the JS_IP_ADDRESS, But the error is still there. Is Anyone knows how to solve it?
Thanks.


Add documentation of special recv behaviour with len 0

This is an important functionality that should be documented in doxygen.

I don't agree about removing the note from the header. Most people don't read external documentation and just read the comments (doxygen) and since it's a major departure from what is expected this should be highlighted where the user is likely to find it.

I moved the line 198, that was a mistake.

is the function blocking when no data is available?
Yes, the select call inherits the timeout from the socket. The behaviour is the same as a normal receive, the difference being it doesn't consume data. It doesn't make much sense to use it in blocking mode. Do you want me to explicit explain that blocking behaviour of the call doesn't change for len 0 in the note section?

Paul, you are raising a very good point about the documentation.
My view so far was:

provide brief documentation in header files.  This header files are also shown as "tool-tip" help in tools like Keil Studio / VS Code.  The space should be limited therefore.
provide details about function behavior and usage examples in a text file (along with doxygen structure).

This approach keeps the header relative clean, example is https://github.com/ARM-software/CMSIS_5/blob/develop/CMSIS/RTOS2/Include/cmsis_os2.h
I think it needs to be a balance and we should at all the implications. Would you be willing to contribute there?

Would you be willing to contribute there?

Where would you like me to contribute? The behaviour is already explained in the external documentation.
I understand the need for brevity in doxygen. How about I remove some redundancy (the argument line is already covered by the note and return value). The return line fits on the existing line so I think it's OK to keep that.

I have also rephrased the note to indicate the purpose instead of comparing explicitly with BSD sockets.
Now this PR add only 1 line to the "tooltip".

Where would you like me to contribute? Contribute to guidelines for header files/documentation.

OK, I collapsed the history as 4 commits  is probably overkill to change one line. I hope everyone is happy with this now.

Looks good. I will merge the PR and add this kind information also for iotSocketSend/SendTo in a separate commit.
Thank you all for your contributions.


Backport for fix of rails 4.2 deprecation

Backports 499ef9d5dd6ec0188c494276d2cc4d4f29825aad

Where did that happen???

Not sure what your question is. Rails 4.2 creates a warning unless you use route_defined? to check if a route was defined (see #68). This was fixed in master, but wasn't backported, so I get a bunch of warnings every time I run my specs (I'm using cells 3).

Gotcha - didn't realise this is against cells-3. :heart:


Screen remains off when folded

[x] I have read the FAQ.
[x] I have searched in existing issues.

Environment

OS: Windows 10 Pro
scrcpy version: 1.17
installation method: choco install scrcpy
device model: Samsung Galaxy Z Flip (SM-F700F)
Android version: 11 (One UI 3.0)

Describe the bug
I want to use scrcpy while my phone screen is folded/closed. However it seems unresponsive to any input from either scrcpy or adb, it just stays off or shows a fading image for a few seconds.
I've obviously tried RMB and all combinations of --stay-awake and --turn-screen-off. I've also tried sending all kinds of adb commands (mostly key inputs) to power the screen back on, to no avail. Also, all on/off combinations of auto-lock and always-on display. The result is always the same: screen is off or a still image of the always-on display.
I was able to control the little external screen targeting it with --display while the phone was folded, but that's it.
I know this is an edge case, but as folding phones rise in popularity (at least I hope so, I love the form factor of this one) I think using scrcpy would be a very useful way to avoid unnecessary mechanical wear.

Didn't think I'd find something so exactly matching my situation.
I have z flip3 5G. While I don't know what "RMB" is, and I have little experience with android+adb. Any developer or contributor to scrcpy, please chime in to confirm/deny speculation:
I have a feeling that it is pretty impossible to accomplish this. My guess is that this functionality isn't even exposed, it's a low-level power-controller function on the manufacturer level. Maybe it's low-level enough that changing it has unexpected volatile effects. It's possible it works like a laptop screen closing and shutting off. Not that Windows is any similar, but there are a sequence of kernel events that occur when the lid is closed or opened.
I looked at the output of "adb shell dumpsys display" and there are additional displays with "has_content=false" , while conveniently the displays with "has_content=true" are the cover screen and unfolded display. Also relevant is "mState=DOZE_SUSPEND" --- maybe it works like sleep mode in that it would require a more involved wake-on-lan (magic-packet?) solution.
I've attached the log.
other seemingly relevant vars are:
display-output.txt
blockScreenOn
coverType
mPowerRequest
dozeScreenState
also this apparently: https://github.com/Genymobile/scrcpy/issues/816

While I don't know what "RMB" is
Right Mouse Button.

Thank you for your contribution, I'm looking forward to the day this gets sorted out.

I have the same issue with my Cosmo Communicator when the cover is closed.


Unable to install.

I want to install this project https://github.com/FrenchYeti/dexcalibur
Tried commands
npm install --global --production windows-build-tools --vs2015
npm config set msvs_version 2015 –global
npm config set python python2.7
npm install --global node-gyp @ latest
for / f "delims ="% P in ('npm prefix -g') do npm config set node_gyp "% P \ node_modules \ node-gyp \ bin \ node-gyp.js"
The error remains
gyp ERR! UNCAUGHT EXCEPTION
gyp ERR! stack Error: spawn C:\Program Files (x86)\MSBuild\14.0\Bin ENOENT
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:229:19)
gyp ERR! stack     at onErrorNT (internal/child_process.js:406:16)
gyp ERR! stack     at process._tickCallback (internal/process/next_tick.js:63:19)
gyp ERR! System Windows_NT 6.3.9600
gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Program Files\nodejs\node_modules\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild"
gyp ERR! cwd C:\dexcalibur\node_modules\xz
gyp ERR! node -v v10.6.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! This is a bug in node-gyp.
gyp ERR! Try to update node-gyp and file an Issue if it does not help:
gyp ERR!     https://github.com/nodejs/node-gyp/issues
npm ERR! code ELIFECYCLE
npm ERR! errno 7
npm ERR<EMAIL_ADDRESS>install: node-gyp rebuild
npm ERR! Exit status 7
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR!      C:\Users\User\AppData\Roaming\npm-cache_logs\2020-12-17T15_17_01_142Z-debug.log
Tell me what else to try?

Node-gyp v3 vs. the current v7.  See #2272 for steps to upgrade node-gyp (not node).

I tried updating to version 7, the error remained.
I wrote to you
npm install --global node-gyp @ latest
for / f "delims ="% P in ('npm prefix -g') do npm config set node_gyp "% P \ node_modules \ node-gyp \ bin \ node-gyp.js"
See
Microsoft Windows [Version 6.3.9600]
User@WIN-9G17FRIREA8 C:\dexcalibur
npm install --global node-gyp@latest
npm WARN deprecated<EMAIL_ADDRESS>request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated<EMAIL_ADDRESS>this library is no longer supported
C:\Users\User\AppData\Roaming\npm\node-gyp -> C:\Users\User\AppData\Roaming\npm\node_modules\node-gyp\bin\node-gyp.js

<EMAIL_ADDRESS>updated 1 package in 10.945s

User@WIN-9G17FRIREA8 C:\dexcalibur
for /f "delims=" %P in ('npm prefix -g') do npm config set node_gyp "%P\node_modules\node-gyp\bin\node-gyp.js"
User@WIN-9G17FRIREA8 C:\dexcalibur
npm config set node_gyp "C:\Users\User\AppData\Roaming\npm\node_modules\node-gyp\bin\node-gyp.js"
User@WIN-9G17FRIREA8 C:\dexcalibur
npm install
npm WARN deprecated<EMAIL_ADDRESS>This package is no longer supported. It's now a built-in Node module. If you've depended on crypto, you should switch to the one that's built-in.
npm WARN deprecated<EMAIL_ADDRESS>request has been deprecated, see https://github.com/request/request/issues/3142
npm WARN deprecated<EMAIL_ADDRESS>Legacy versions of mkdirp are no longer supported. Please update to mkdirp 1.x. (Note that the API surface has changed to use Promises in 1.x.)
npm WARN deprecated<EMAIL_ADDRESS>this library is no longer supported

<EMAIL_ADDRESS>install C:\dexcalibur\node_modules\frida
prebuild-install || node-gyp rebuild

<EMAIL_ADDRESS>install C:\dexcalibur\node_modules\xz
node-gyp rebuild

User@WIN-9G17FRIREA8 C:\dexcalibur\node_modules\xz
if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin\....\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node "C:\Users\User\AppData\Roaming\npm\node_modules\node-gyp\bin\node-gyp.js" rebuild )
gyp ERR! UNCAUGHT EXCEPTION
gyp ERR! stack Error: spawn C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin ENOENT
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:229:19)
gyp ERR! stack     at onErrorNT (internal/child_process.js:406:16)
gyp ERR! stack     at process._tickCallback (internal/process/next_tick.js:63:19)
gyp ERR! System Windows_NT 6.3.9600
gyp ERR! command "C:\Program Files\nodejs\node.exe" "C:\Users\User\AppData\Roaming\npm\node_modules\node-gyp\bin\node-gyp.js" "rebuild"
gyp ERR! cwd C:\dexcalibur\node_modules\xz
gyp ERR! node -v v10.6.0
gyp ERR! node-gyp -v v7.1.2
gyp ERR! Node-gyp failed to build your package.
gyp ERR! Try to update npm and/or node-gyp and if it does not help file an issue with the package author.
npm ERR! code ELIFECYCLE
npm ERR! errno 7
npm ERR<EMAIL_ADDRESS>install: node-gyp rebuild
npm ERR! Exit status 7
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR!      C:\Users\User\AppData\Roaming\npm-cache_logs\2020-12-18T17_47_53_710Z-debug.log

 gyp ERR! stack Error: spawn C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\15.0\Bin ENOENT

do you know if vs 2017 is properly installed? or do you have another version that it should be finding? Perhaps you can dig into that directory tree to see what it should be finding and whether it's all there.

I also had an issue with this error! It was resolved when I installed Visual Studio Community 2017.

I also had an issue with this error! It was resolved when I installed Visual Studio Community 2017.

Can this issue be closed?


Ensure that an unsubscribe package contain at least one topic filter

Currently it is possible to encode an empty list in an unsubscribe package. The Tortoise.Connection.unsubscribe/3-function pattern match will match for a list containing one or more items, but the encode function in Tortoise.Package.Unsubscribe allows for any list. We should consider throwing if the unsubscribe list is empty, and we should update the unsubscribe-package-generator to not generate empty lists in the tests.

This has been merged into the next-release branch


CompressedImageCodec Dimension Options

For RGB images, CompressedImageCodec only supports the dimension (H, W, 3) whereas torchvision datasets seem to default to (3, H, W). Is there a reason why (3, H, W) is not supported as an option too?

No particular reason. Is the goal to avoid extra dimensions reordering during the read? I think we can add a  parameter to the codec to be able to do that. Would be happy to accept a PR if you do that ;)

Yes, that's the goal, to make it more compatible with PyTorch. Most, if not all, PyTorch pretrained models accept images of (3, H, W) and it's just cumbersome to have to reshape it, especially since one may have to decode the image before being able to do so.
I'll be happy to do a PR, what parameter are you thinking of for the codec? I haven't seen why we need one.

Oh, may be I misunderstood something. What are you proposing to do then? How do you propose to change petastorm behavior? Do you want to always return images as (3, H, W)? If that's the case, I am not sure it's a good idea since there are a lot of non pytorch users.

I'm looking at the following code:
if len(value.shape) == 2:
    # Greyscale image
    image_bgr_or_gray = value
elif len(value.shape) == 3 and value.shape[2] == 3:
    # Convert RGB to BGR
    image_bgr_or_gray = value[:, :, (2, 1, 0)]
else:
    raise ValueError('Unexpected image dimensions. Supported dimensions are (H, W) or (H, W, 3). '
                        'Got {}'.format(value.shape))

and I thought we would just add another condition to accept the (3, H, W) format

If we accept (3, H, W) we would need to transpose it before sending data to imencode (otherwise it would fail). Then during decoding we would still get (H, W, 3), since this is how decode works... Am I missing something?

I see, I didn't know imencode has a constraint of (H, W, 3). Let me think about it again.


README improvements: General layouting and design

As a first time visitor of our repo page
I want to land on a nice looking, structured and informative README
Because it enables me to jump into the project easier I will be spending more time with this project as a result.
NOTES:

Its not necessarily a part of this story to populate every part of the readme, but more of a layout / design

Acceptance Criteria:

[x] README exists
[x] README layout is planned and done
[x] General design for the README is provided

Since there have been no major outcries about how terrible the new README looks and how it is structured, I am going to close this for the time being.


Linking Errors with Unknown Cause

I just pushed commit 949d4ec54ecd769f13d36722f379552002a63a34, which has a fatal compile-time bug involving the AssetArray class and the linker. For some reason, compiling the engine gives "unresolved externals" errors in the ShaderManager class, which so far is the only class that uses AssetArray. Here's my error log:
Severity	Code	Description	Project	File	Line	Suppression State Error	LNK2019	unresolved external symbol "public: __thiscall AssetArray<class Shader>::~AssetArray<class Shader>(void)" (??1?$AssetArray@VShader@@@@QAE@XZ) referenced in function __unwindfunclet$??0ShaderManager@@QAE@XZ$1	ShadowlightEngine	C:\Marcus\Dropbox\The_Way_Back\ShadowlightEngine\v1\ShadowlightEngine\ShadowlightEngine\ShaderManager.obj	1	 Error	LNK2019	unresolved external symbol "public: __thiscall AssetArray<class Shader>::AssetArray<class Shader>(void)" (??0?$AssetArray@VShader@@@@QAE@XZ) referenced in function "public: __thiscall ShaderManager::ShaderManager(void)" (??0ShaderManager@@QAE@XZ)	ShadowlightEngine	C:\Marcus\Dropbox\The_Way_Back\ShadowlightEngine\v1\ShadowlightEngine\ShadowlightEngine\ShaderManager.obj	1	 Error	LNK2019	unresolved external symbol "public: __thiscall AssetArray<class Program>::~AssetArray<class Program>(void)" (??1?$AssetArray@VProgram@@@@QAE@XZ) referenced in function "public: virtual __thiscall ShaderManager::~ShaderManager(void)" (??1ShaderManager@@UAE@XZ)	ShadowlightEngine	C:\Marcus\Dropbox\The_Way_Back\ShadowlightEngine\v1\ShadowlightEngine\ShadowlightEngine\ShaderManager.obj	1	 Error	LNK2019	unresolved external symbol "public: __thiscall AssetArray<class Program>::AssetArray<class Program>(void)" (??0?$AssetArray@VProgram@@@@QAE@XZ) referenced in function "public: __thiscall ShaderManager::ShaderManager(void)" (??0ShaderManager@@QAE@XZ)	ShadowlightEngine	C:\Marcus\Dropbox\The_Way_Back\ShadowlightEngine\v1\ShadowlightEngine\ShadowlightEngine\ShaderManager.obj	1	 Error	LNK2019	unresolved external symbol "public: int __thiscall AssetArray<class Shader>::Gen<class VertexShader>(void)" (??$Gen@VVertexShader@@@?$AssetArray@VShader@@@@QAEHXZ) referenced in function "public: virtual int __thiscall ShaderManager::Create(class Lump const &)" (?Create@ShaderManager@@UAEHABVLump@@@Z)	ShadowlightEngine	C:\Marcus\Dropbox\The_Way_Back\ShadowlightEngine\v1\ShadowlightEngine\ShadowlightEngine\ShaderManager.obj	1	 Error	LNK2019	unresolved external symbol "public: int __thiscall AssetArray<class Shader>::Gen<class GeometryShader>(void)" (??$Gen@VGeometryShader@@@?$AssetArray@VShader@@@@QAEHXZ) referenced in function "public: virtual int __thiscall ShaderManager::Create(class Lump const &)" (?Create@ShaderManager@@UAEHABVLump@@@Z)	ShadowlightEngine	C:\Marcus\Dropbox\The_Way_Back\ShadowlightEngine\v1\ShadowlightEngine\ShadowlightEngine\ShaderManager.obj	1	 Error	LNK2019	unresolved external symbol "public: int __thiscall AssetArray<class Shader>::Gen<class FragmentShader>(void)" (??$Gen@VFragmentShader@@@?$AssetArray@VShader@@@@QAEHXZ) referenced in function "public: virtual int __thiscall ShaderManager::Create(class Lump const &)" (?Create@ShaderManager@@UAEHABVLump@@@Z)	ShadowlightEngine	C:\Marcus\Dropbox\The_Way_Back\ShadowlightEngine\v1\ShadowlightEngine\ShadowlightEngine\ShaderManager.obj	1	 Error	LNK2019	unresolved external symbol "public: int __thiscall AssetArray<class Program>::Gen(void)" (?Gen@?$AssetArray@VProgram@@@@QAEHXZ) referenced in function "public: virtual int __thiscall ShaderManager::Create(class Lump const &)" (?Create@ShaderManager@@UAEHABVLump@@@Z)	ShadowlightEngine	C:\Marcus\Dropbox\The_Way_Back\ShadowlightEngine\v1\ShadowlightEngine\ShadowlightEngine\ShaderManager.obj	1	 Error	LNK2019	unresolved external symbol "public: class Shader * __thiscall AssetArray<class Shader>::Get(int)" (?Get@?$AssetArray@VShader@@@@QAEPAVShader@@H@Z) referenced in function "public: virtual int __thiscall ShaderManager::Create(class Lump const &)" (?Create@ShaderManager@@UAEHABVLump@@@Z)	ShadowlightEngine	C:\Marcus\Dropbox\The_Way_Back\ShadowlightEngine\v1\ShadowlightEngine\ShadowlightEngine\ShaderManager.obj	1	 Error	LNK2019	unresolved external symbol "public: class Program * __thiscall AssetArray<class Program>::Get(int)" (?Get@?$AssetArray@VProgram@@@@QAEPAVProgram@@H@Z) referenced in function "public: virtual int __thiscall ShaderManager::Create(class Lump const &)" (?Create@ShaderManager@@UAEHABVLump@@@Z)	ShadowlightEngine	C:\Marcus\Dropbox\The_Way_Back\ShadowlightEngine\v1\ShadowlightEngine\ShadowlightEngine\ShaderManager.obj	1	 Error	LNK1120	10 unresolved externals	ShadowlightEngine	C:\Marcus\Dropbox\The_Way_Back\ShadowlightEngine\v1\ShadowlightEngine\Debug\ShadowlightEngine.exe	1

I turns out that templates are an exception regarding method location, they have to be in the header file. I moved all of AssetArray.cpp into AssetArray.h, and the problem was solved.

Good Job!
Sent from Mail for Windows 10
From: ShadowlightStudios
Sent: Tuesday, December 12, 2017 12:56 PM
To: ShadowlightStudios/shadowlight-engine
Cc: Subscribed
Subject: Re: [ShadowlightStudios/shadowlight-engine] Linking Errors withUnknown Cause (#5)
I turns out that templates are an exception regarding method location, they have to be in the header file. I moved all of AssetArray.cpp into AssetArray.h, and the problem was solved.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.

I can help if needed.
Sent from Mail for Windows 10
From: ShadowlightStudios
Sent: Tuesday, December 12, 2017 12:56 PM
To: ShadowlightStudios/shadowlight-engine
Cc: Subscribed
Subject: Re: [ShadowlightStudios/shadowlight-engine] Linking Errors withUnknown Cause (#5)
I turns out that templates are an exception regarding method location, they have to be in the header file. I moved all of AssetArray.cpp into AssetArray.h, and the problem was solved.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub, or mute the thread.


Feature/property binding for docket configuration

Up for discussion:

This will be a breaking change if the publishing functionality is used

Do not use AsyncDocket bean per Spring injection
-> refactor
-> write comment on AsyncApiDocket


BunnyCompilerPass potentially reflects on classes that don't exist

The BunnyCompilerPass is trying to run reflection on everything in the container, and some bundles declare optional services for dependencies that you may not have installed. If this is the case, there will be an exception when trying to reflect on a classname that does not exist.
Another package I have installed declares a service I don't use relating to Doctrine's MongoDB ODM. Therefore, bunny bundle will give me this error:
[ReflectionException]
    Class Doctrine\MongoDB\Database does not exist

This PR should be a quick fix to that.

LGTM //cc @klatys


Episode/Series extraction no longer working

Looks like the TV stations removed the series/episode information from the title fields and now store it in some other fields (example https://www.zdf.de/serien/solo-fuer-weiss) . However I didn't see those other fields in the data provided by the MediathekView bundle.
So  I guess we need to wait until MediathekView has that sorted out in their export...

Thank you for the update. Very annoying, I hope they follow soon.

added upstream request: https://github.com/mediathekview/MediathekView/issues/724


Update requirements.txt

Tickets
deepface requires unnecessary depth resolution of retina_face upon installation of deepface dependencies

What has been done
tightened the versioning of retina_face so that resolvers only need to go 3 deep
How to test
Build dev release, test, publish as dev release, encourage small group install locally for feedback before publishing as stable

The latest version of retina-face is 0.0.17, I think we should add this into the requirements. Do you mind to do that?

I concur! 🙏


Add CloudKit sync

The difficult part of this is going to be not having duplicates of the preloaded data.
If CloudKit syncs before data is preloaded, then this shouldn't be too big of an issue, as the data preload will simply reference the existing objects. It will override it though, so if the user changed any of it it'll revert back to default.
If this is how this works, this could be remedied by checking if there is data already before preloading. Updates would then have to be handled differently though, having a new internal JSON file per update. That maybe should be how it's done anyway though.
If the preload is run before the CloudKit sync then you'll likely end up with duplicate entries every time you install the app on a new device.

I actually don't think there's much of a reason to add this. I think being able to export characters and maybe do bulk exports would be enough and could potentially even be better than iCloud sync.


module 'tensorflow' has no attribute 'keras'

Specifications:
win10 os
python 3.6
tensorflow 2.1.0
While loading the trained model, I used:
tf.keras.models.load_model
But it resulted in error,
AttributeError: module 'tensorflow' has no attribute 'keras'

@samra-irshad
Can you please try "pip install -U tensorflow" and follow this link for reference
link
link1
link2
link3

I cannot uninstall/install packages myself. I am using a certain HPC facility and they have it installed already. I just load it to run my script

@samra-irshad
Is this still an issue

I faced same problem and I create new env with different python version and it work. Make sure to use compatible python version with tensorflow


Adds note about using named ports to Pod Conditions guide

Current docs don't mention that when using named ports in a service with a readinessGate you must use the port name instead of the number, resulting in endless corresponding condition of pod readiness gate "[...]" does not exist. errors, and pods that never become ready.

CLA signed.

/ok-to-test

Thanks so much for improving the doc 👍
/lgtm
/approve


Provide ability to override EditorExportPlugin::_export_end() in C++

I working on a custom godot engine which needing a custom exporter plugin in cpp.
However, unlike EditorExportPlugin::_export_file() and EditorExportPlugin::_export_begin(), EditorExportPlugin::_export_end() is private and can't be overrided to implement my logic directly in cpp.
I don't know this is intended or not, but in GDScript, these 3 methods can be override directly.
So I do a little change to let EditorExportPlugin::_export_end() can be overrided in cpp.

Thanks!


develop

https://github.com/fission-codes/rust-template/tree/main

[ ] #19
[ ] #8

Upon running the application locally, OpenAPI documentation is available as a swagger-ui at http://localhost:3000/swagger-ui/. Read more in Docs and OpenAPI.

🔋 Batteries Included
anyhow as a ergonomic and idiomatic alternative for handling errors in applications, and thiserror for designing dedicated error type(s) in libraries so that on failures the caller gets exactly the information chosen.
proptest and criterion for generating inputs and running benchmarks (optional).
tracing for instrumenting Rust programs to collect structured, event-based diagnostic information, going beyond just logging-style diagnostics.
tracing-subscriber for Rust binary applications to collect trace data, such as by logging it to standard output, and consume messages emitted by log-instrumented libraries and modules.
An option to generate a highly opiniated axum web application stack.
🔋 Batteries Included Web Framework
If you choose to run a webserver with axum (choosing true at the prompt), you'll be given an extensive web framework to work from, heavily influenced by Composing an observable Rust application, among other sources.
anyhow as a ergonomic and idiomatic alternative for handling errors in applications.
axum as the fundamenal, already-🔋's included web framework that serves as our foundation, which includes high-level features like:
Routing requests to handlers with a macro free API
Declaratively parsing requests using extractors.
Subscribing to a simple and predictable error handling model, which we further simplify in our generated template.
Generating responses with minimal boilerplate.
Taking full advantage of the tower and tower-http ecosystem of middleware, services, and utilities.

total ~15 hrs

Нашелся код:
https://github.com/thallada/axum-log-stream
Только я надеялся стрим будет видео а оказалось стрим это любой поток данных.

[ ] Описать разницу в функционале

Чет дофига всего. АПИ, сервер, стрим, сервис. ЯИИ нагенерил шляпы по ходу дела

[x] #30

Backend server: handle all incoming requests from clients, process them, and respond accordingly.
это роутер
Camera Management Module:

описать https://github.com/thallada/axum-log-stream
An example axum server that serves a live stream of its own tracing log to an HTML page.
server serves a stream to a page.
Browser opens the page, this runs a program in JS which connects to the server which serves the stream from the Database, . . .  Camera Module.
Video Management Software (VMS): VMS is a centralized software application that manages and controls multiple cameras, encoders, and other components of the system.

axum-template: GraphQL and REST API, SurrealDb, JWT auth, direct error handling, request logs
axum-login: Session-based user authentication for axum.
ReductStore: A time series database for storing and managing large amounts of blob data

https://github.com/programatik29/axum-tutorial/blob/master/tutorial/02-layout.md

problem:
running cargo install fails with error:
error: failed to run custom build command for `openssl-sys v0.9.98`

google

https://discourse.nixos.org/t/how-to-install-openssl-to-compile-against/1249

warning: be sure to add `/home/alex/.cargo/bin` to your PATH to be able to run the installed binaries

[ ] Use OBS to push a live rtmp stream |   ffmpeg -re -stream_loop -1 -i test.mp4 -c:a copy -c:v copy -f flv -flvflags no_duration_filesize rtmp://<IP_ADDRESS>:1935/live/test
[ ] ffplay -i rtmp://localhost:1935/live/test

https://crates.io/crates/xiu

To implement the video streaming server using Rust and Axum, you would follow these general steps:

[ ] Create a new Rust project using Cargo (the Rust package manager).
[ ] Add dependencies for Axum and any other required libraries such as tokio (for async I/O) or tower-http (for middleware support).
[ ] Set up the main function, which initializes the server and starts listening on a specified port.
[ ] Define routes for your video streaming service using Axum's routing functions. These may include endpoints for listing available videos, playing specific videos, or managing user accounts (if authentication is required).
[ ] Implement handlers for each route that perform the necessary operations to serve the requested content. For example, a handler might read video data from a file system or database and stream it directly to the client using Axum's built-in support for streaming responses.
[ ] Add any desired middleware components (such as authentication, rate limiting, or logging) to enhance your server's functionality and security.
[ ] Test and optimize your video streaming server by running it locally and checking its performance under various load conditions using tools like wrk or Siege. Make necessary adjustments based on the results to ensure optimal throughput and low latency for all users.
[ ] Deploy your Rust-Axum video streaming server to a production environment, such as AWS or Google Cloud Platform, by following best practices for containerization (e.g., Docker) and configuration management tools like Ansible or Terraform.

xiu serves the page in html

axum can easily serve html:
https://github.com/aleeusgr/efected-coto-emmory/blob/bd95504edee4601953207c74c7b1b12f3e182c02/src/lib.rs#L50-L52
so all I have to do to serve this page on an endpoint is to read index.html and route it to /index

[ ] Host a collection of static video files nested arbitrarily deep in a root directory.

    let app = Router::new()
        .nest_service("/assets/", static_file_router())
        .route("/favicon.ico", get(favicon))
        .route("/video/:video_id", get(video_handler))
        .route("/", get(index))
        .route("/reload", post(reload))
        .route("/healthcheck", get(health_check))
        .layer(TraceLayer::new_for_http())
        .with_state(state);

https://swagger.io/tools/swagger-ui/
https://github.com/aalekhpatel07/static-video-server/blob/master/src/main.rs#L135-L143
http://localhost:9092/

Subject: Your Dream Job Awaits: Apply Now to Join GitHub as a Developer!
Hey there,
We've got some thrilling news for you! GitHub is currently looking for skilled Developers to join our team. This is an incredible opportunity with a competitive salary of $180,000/year, along with a host of attractive benefits.
Interested in taking your career to the next level? Don't miss out! Click here to apply and secure your spot.
Looking forward to potentially welcoming you aboard!
Best regards,
GitHub Recruitment Team
priyakumari02, @Parsaloi, @denis256, @IliasKar, @erichocean, @NAMUORI00, @Abdulbois, @chenpeigen1, @Silassentinel, @manolaz, @pradeepranasinghe, @kapendat, @dhiran-gen, @kengeo, @tarunjainsagar, @AnishDabhane, @cmjagtap, @vin6158, @clkz, @LyMarita


frontend: apiProxy: Fix some types and add review comments

A summary of things marked for fixing.

Return types are missing in places.

Some types are "any".

No docs on some functions and interfaces.
Async is missing on some functions that need to be marked as so.
Some of the users of the functions are not handling errors.

was there ever an issue open as a reminder to document the apiProxy functions/interfaces? we can add one if not, would be useful

I think we had someone adding the docs to it but I cannot find that PR now. In any case, it'd be nice to have but I think we will be changing the apiProxy a lot after we had the tests in, so not sure if it's worth doing by the team.

another minor fix I noticed when testing apiProxy: lines 915 and 922 have a slight spelling error
'Unkown' can be changed to 'Unknown'


Feature: New regionalised  MFD targets for subduction inversion

SRM team want to run experiments setting traget MFDs for the Hikurangi and Kermadec regions independently.
requires:

[ ] region defintions lat/lon strings for the two regions
[ ] API changes to support multiple MFD settings

@voj maybe we could generalise the Gateway API / configuration to take a mapping of REGION_ENUM -> MFD config? I need to look into the impact of this in Toshi-land .

@mcg-gns not sure whether this is still in scope. moving priority to  Todo for now

close as dup


Add contributing section

as titled
Type of change

[x] This change requires a documentation update

Great, thanks!


Multiple Videos in Queue?

Is it possible to set up some sort of queue or is there some other means of specifying multiple videos without having to use multiple Terminal windows?

You can pass more than one URL to youtube-dl: youtube-dl 'http://www.youtube.com/watch?v=BaW_jenozKc' 'http://www.youtube.com/watch?v=UxxajLWwzqY'. If that's not enough for you usercase, could you explain it with more detail?

That’s simple enough. Thanks!


HV-1763 Improve performances of ExecutableHelper#getSignature()

and let's remember to blame @gunnarmorling a bit :)  A good old fashioned "we told you so.." :-P

and let's remember to blame @gunnarmorling a bit :)

Sure, no problem, I can handle it ;)
That said, I hope you didn't choose 25 as type name length factor lightly, but only after careful evaluation and benchmarking with a representative set of class names ;)

@Sanne I think I made all the changes you requested.


Can't claim my certificate although the profile is public and I accepted the Academic Honesty Pledge

I'm logged in to my profile and finished the responsive web design projects

Clicked on "Claim certificate"

Then clicked on "Show responsive web design certificate"

Although that I accepted the Academic honesty pledge, the website keeps telling me "mahmoudafawzy has not yet agreed to our Academic Honesty Pledge."
The version of Google chrome I'm using is: Version 71.0.3578.98 (Official Build) (64-bit)

@MahmoudAFawzy Has the issue been fixed on your side?

@thecodingaviator yes it has

@RandellDawson How is that possible? Have we pushed master to production?

@thecodingaviator yes it has

@thecodingaviator The core team can selectively push emergency fixes to production and not the entire master branch.  It is possible this was done.  @raisedadead or @Bouncey would probably know.

We did not push any fixes. The underlying problem was, the OP had accidentally created two different accounts. They deleted one of them and that has resolved their issue. More often than not that is the case for these issues, where the users accidentally create secondary accounts, and end up with this issue.

RIP


I cant see all the attributions in the Attribution field at https://clearlydefined.io/definitions

In the Attribution field, it will list multiple copyrights and then just have ….  I cant see them all.  And then when I click on magnifying glass, I then have to open ALL the files to find all the copyrights?  And then if I click on one, I get a pop-up window, where I still cant easily see the whole copyright.

@AlexWebYourmind Can you take a look at this, please?

@fossygirl This would probably be an enhancement to the current UI View.
As @ariel11 correctly said, the current way to see the full list of copyrights is navigating file by file.

@gianpaj The quickest way to address this (we should review the overall UX as we go) is to add a Read-only popover (with vertical scrollbar) that allows the user to see the full list of Copyrights when clicking on the Attribution content.
This would be consistent with the fileview experience we have right now, and enable a user to see the full list of Copyrights without having to look on each single file.


Script engine runtime to compile time

Some checks like types mismatch and stuff isn't handled in compile time

For external methods, I can add an extra method that can analyze what arguments are being used with what type, then throw a compiler error for invalid inputs.


refactor: Add underlying specs to "About UniMe" page

Description of change
List the specs and their versions used in UniMe's about page but only in dev mode.
Links to any relevant issues
Fixes #265.
How the change has been tested
Visual check of the "About UniMe" page (turn dev mode on and off).
Definition of Done checklist
Add an x to the boxes that are relevant to your changes.

[x] I have followed the contribution guidelines for this project
[x] I have performed a self-review of my own code
[x] 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
[x] New and existing unit tests pass locally with my changes

Display in dev mode only.

Looks good! Except that in desktop mode clicking one of the links result in this page:
It's really not a big deal since we're the only once using Desktop, but in case it is a quick fix it might be worth it to fix it.

this is the corresponding error in my terminal:
/usr/lib/x86_64-linux-gnu/webkit2gtk-4.1/WebKitNetworkProcess: symbol lookup error: /snap/core20/current/lib/x86_64-linux-gnu/libpthread.so.0: undefined symbol: __libc_pthread_init, version GLIBC_PRIVATE

The WebKit issue I encountered is related to my VSCode somehow. After following these instructions the problem was resolved for me.