Intacct card mapping

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@bcb7e79). Click here to learn what that means.
Patch has no changes to coverable lines.

Additional details and impacted files
@@            Coverage Diff            @@
##             master     #269   +/-   ##
=========================================
  Coverage          ?   96.23%
=========================================
  Files             ?       31
  Lines             ?     3798
  Branches          ?        0
=========================================
  Hits              ?     3655
  Misses            ?      143
  Partials          ?        0

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@bcb7e79). Click here to learn what that means.
The diff coverage is n/a.

:exclamation: Current head 1529dee differs from pull request most recent head d694b9f. Consider uploading reports for the commit d694b9f to get more accurate results

Additional details and impacted files

@@            Coverage Diff            @@
##             master     #269   +/-   ##
=========================================
  Coverage          ?   96.23%
=========================================
  Files             ?       31
  Lines             ?     3798
  Branches          ?        0
=========================================
  Hits              ?     3655
  Misses            ?      143
  Partials          ?        0

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@bcb7e79). Click here to learn what that means.
The diff coverage is n/a.

Additional details and impacted files

@@            Coverage Diff            @@
##             master     #269   +/-   ##
=========================================
  Coverage          ?   96.30%
=========================================
  Files             ?       31
  Lines             ?     3794
  Branches          ?        0
=========================================
  Hits              ?     3654
  Misses            ?      140
  Partials          ?        0

Codecov Report

Merging #269 (d694b9f) into master (b084adc) will increase coverage by 0.00%.
The diff coverage is 92.30%.

:exclamation: Current head d694b9f differs from pull request most recent head 5a14a9d. Consider uploading reports for the commit 5a14a9d to get more accurate results

Additional details and impacted files

@@           Coverage Diff           @@
##           master     #269   +/-   ##
=======================================
  Coverage   96.30%   96.30%
=======================================
  Files          31       31
  Lines        3790     3794    +4
=======================================
+ Hits         3650     3654    +4
  Misses        140      140

Impacted Files
Coverage Δ

apps/sage_intacct/models.py
97.44% <90.00%> (+0.01%)
:arrow_up:

apps/fyle/models.py
97.18% <100.00%> (+0.01%)
:arrow_up:

apps/fyle/views.py
96.77% <100.00%> (ø)

apps/mappings/signals.py
100.00% <100.00%> (ø)

Codecov Report

Merging #269 (5a14a9d) into master (b084adc) will increase coverage by 0.00%.
The diff coverage is 92.30%.

Additional details and impacted files

@@           Coverage Diff           @@
##           master     #269   +/-   ##
=======================================
  Coverage   96.30%   96.30%
=======================================
  Files          31       31
  Lines        3790     3794    +4
=======================================
+ Hits         3650     3654    +4
  Misses        140      140

Impacted Files
Coverage Δ

apps/sage_intacct/models.py
97.44% <90.00%> (+0.01%)
:arrow_up:

apps/fyle/models.py
97.18% <100.00%> (+0.01%)
:arrow_up:

apps/fyle/views.py
96.77% <100.00%> (ø)

apps/mappings/signals.py
100.00% <100.00%> (ø)

Codecov Report

Merging #269 (5a14a9d) into master (b084adc) will increase coverage by 0.00%.
The diff coverage is 92.30%.

Additional details and impacted files

@@           Coverage Diff           @@
##           master     #269   +/-   ##
=======================================
  Coverage   96.30%   96.30%
=======================================
  Files          31       31
  Lines        3790     3794    +4
=======================================
+ Hits         3650     3654    +4
  Misses        140      140

Impacted Files
Coverage Δ

apps/sage_intacct/models.py
97.44% <90.00%> (+0.01%)
:arrow_up:

apps/fyle/models.py
97.18% <100.00%> (+0.01%)
:arrow_up:

apps/fyle/views.py
96.77% <100.00%> (ø)

apps/mappings/signals.py
100.00% <100.00%> (ø)


does an "ESP8266 ESP-12F" or just an "ESP8266 ESP-12E" work?

Hello I want to create a project. But I have no idea whether it must be a 12E or whether a 12F also works.
can someone answer the question?
does an "ESP8266 ESP-12F" or just an "ESP8266 ESP-12E" work?
sorry if I am not allowed to ask here.
However, I don't know where else to ask since I want to use MCLightnig.
greeting Kogge

Hi there,
both work, as ther are nearly the same,  but i recommend wemos d1 mini or nodemcu boards.


Check for update in the app

What feature would you like to suggest?
Provide a way to automatically check for updates and prompt the players to download the updated app from itch.
Additional Information
No response

I believe I found a relevant thread. It was created back in 2018 and talks about how to create an endpoint for the game. Endpoint discussion
In order for the endpoint to be available; a program called butler has to be used. Butler is a commandline tool that communicates with itch.io. It also compatible with Github CI in order to automatically be ran as part of the build process.
More about butler
Uploading a build

@a2937 Hi Aaron,
Thanks for the note and sounds good!
I'm looking into these two Ren'Py docs for creating DLCs on my end.
https://www.renpy.org/dev-doc/html/updater.html
https://www.renpy.org/doc/html/persistent.html#multi-game-persistence


Revert "fix mac coverage collection"

Reverts bitfaster/BitFaster.Caching#317

Coverage: 96.462% (-0.0%) from 96.462% when pulling 6d5e352eee1532644cc6747751091b0bf7772163 on revert-317-users/alexpeck/maccover into f01b3cc710f5ae8b9ae6ff38b10f3577eba2991a on main.


user story 8 - styling & usability

Value Proposition
As a user, I want a nice looking app, so that I enjoy using that app.
Description
Add more styling to the components and background. Also add icons for nav burger and stopwatch.
Acception Criteria

[ ] burger menu collapses after clicking anywhere
[ ] app looking pleasant to the eye
[ ] background image
[ ] coherent styling of components, background and header
[ ] fitting color mix

Tasks

[ ] toggle burger menu when clicking on nav links
[ ] toggle burger menu when clicking anywhere else
[ ] search for background image
[ ] search for /create fitting svgs for burger menu, stopwatch and delete button
[ ] implement background image with <Image/>
[ ] implement svgs
[ ] restyle card and form component
[ ] play around with different colors

LGTM :)


mesos.resolve fails to get master - please update mesos-interface

I believe this is because of old version of mesos-interface-0.22.1 for python being used here.
The protocol changed from protobuf to json, with protobuf being deprecated.
Would it be possible to update mesos libraries to latest version, or at least 0.25 that we are using? https://pypi.python.org/pypi/mesos.interface/0.25.0
Here is the stderr log of the mesos scheduler that fails on the mesos.resolve call:
I0411 17:08:36.551460 48280 exec.cpp:134] Version: 0.25.0
I0411 17:08:36.553437 48281 exec.cpp:208] Executor registered on slave 3fa75c13-d6ea-402a-9300-3c4119a1db01-S6
Warning: '-c' is deprecated, it will be replaced by '--cpu-shares' soon. See usage.
*** Running /etc/my_init.d/00_regen_ssh_host_keys.sh...
*** Running /etc/my_init.d/scheduler...
2016-04-11 17:08:37,237 [INFO] kazoo.client: Connecting to ***:2181
2016-04-11 17:08:37,246 [INFO] kazoo.client: Zookeeper connection established, state: CONNECTED
2016-04-11 17:08:37,308 [INFO] memsql_framework.scheduler.scheduler: Starting scheduler
2016-04-11 17:08:37,414 [INFO] memsql_framework.scheduler.main: Exit with Ctrl-C
2016-04-11 17:08:37,415:8(0x7f3290bd1700):ZOO_INFO@log_env@712: Client environment:zookeeper.version=zookeeper C client 3.4.5
2016-04-11 17:08:37,415:8(0x7f3290bd1700):ZOO_INFO@log_env@716: Client environment:host.name=ip-10-123-12-70
2016-04-11 17:08:37,415:8(0x7f3290bd1700):ZOO_INFO@log_env@723: Client environment:os.name=Linux
2016-04-11 17:08:37,415:8(0x7f3290bd1700):ZOO_INFO@log_env@724: Client environment:os.arch=4.4.5-15.26.amzn1.x86_64
2016-04-11 17:08:37,415:8(0x7f3290bd1700):ZOO_INFO@log_env@725: Client environment:os.version=#1 SMP Wed Mar 16 17:15:34 UTC 2016
I0411 17:08:37.415400    45 sched.cpp:157] Version: 0.22.1
2016-04-11 17:08:37,415:8(0x7f3290bd1700):ZOO_INFO@log_env@733: Client environment:user.name=(null)
2016-04-11 17:08:37,415:8(0x7f3290bd1700):ZOO_INFO@log_env@741: Client environment:user.home=/root
2016-04-11 17:08:37,415:8(0x7f3290bd1700):ZOO_INFO@log_env@753: Client environment:user.dir=/
2016-04-11 17:08:37,415:8(0x7f3290bd1700):ZOO_INFO@zookeeper_init@786: Initiating client connection, host=***:2181 sessionTimeout=10000 watcher=0x7f32994af6e0 sessionId=0 sessionPasswd=<null> context=0x7f3220000930 flags=0
2016-04-11 17:08:37,417:8(0x7f3235ffb700):ZOO_INFO@check_events@1703: initiated connection to server [<IP_ADDRESS>:2181]
2016-04-11 17:08:37,420:8(0x7f3235ffb700):ZOO_ERROR@handle_socket_error_msg@1721: Socket [<IP_ADDRESS>:2181] zk retcode=-4, errno=112(Host is down): failed while receiving a server response
2016-04-11 17:08:37,422:8(0x7f3235ffb700):ZOO_INFO@check_events@1703: initiated connection to server [<IP_ADDRESS>:2181]
2016-04-11 17:08:37,426:8(0x7f3235ffb700):ZOO_INFO@check_events@1750: session establishment complete on server [<IP_ADDRESS>:2181], sessionId=0xb5223705e05fd1b, negotiated timeout=10000
I0411 17:08:37.426429    31 group.cpp:313] Group process (group(1)@<IP_ADDRESS>:34357) connected to ZooKeeper
I0411 17:08:37.426559    31 group.cpp:790] Syncing group operations: queue size (joins, cancels, datas) = (0, 0, 0)
I0411 17:08:37.426565    31 group.cpp:385] Trying to create path '/master' in ZooKeeper
I0411 17:08:37.431599    31 detector.cpp:138] Detected a new leader: (id='48')
I0411 17:08:37.431653    31 group.cpp:659] Trying to get '/master/json.info_0000000048' in ZooKeeper
Failed to detect a master: Failed to parse data of unknown label 'json.info'
*** /etc/my_init.d/scheduler failed with status 1

*** Killing all processes...

I've updated the Mesos dependency to 0.28.0.  Go ahead and try it out.


Enhancement: Implement Additional Uniqueness Feature in UniqueGen Npm Package

Issue Description
Summary
The UniqueGen Npm package currently lacks a feature that ensures more uniqueness in generated values. This issue proposes adding a new feature to enhance uniqueness using a hashing algorithm.
Background
The UniqueGen package provides a convenient way to generate unique values. However, in certain use cases, the generated values may not be unique enough due to the nature of the algorithm used. To address this limitation, we propose introducing a hashing algorithm that will enhance the uniqueness of the generated values.
Desired Solution
We aim to add a new feature to the UniqueGen Npm package that utilizes a hashing algorithm to generate even more unique values. This feature will enhance the existing uniqueness mechanism and reduce the chances of collisions.
Implementation Details
The proposed solution involves integrating a well-established hashing algorithm, such as SHA-256 or MurmurHash, into the UniqueGen package. The algorithm will take the generated values as input and produce a hash code, which will then be used to determine the uniqueness of the values.
Steps to Reproduce (if applicable)
N/A
Expected Outcome
With the inclusion of the hashing algorithm, the UniqueGen package will generate values with significantly enhanced uniqueness. This improvement will make the package more reliable and suitable for a wider range of applications.
Additional Information

It would be beneficial to perform thorough testing and benchmarking to assess the impact of the hashing algorithm on performance and uniqueness.
Considering the compatibility of the hashing algorithm with different environments and dependencies is essential to ensure widespread adoption of the UniqueGen package.
Documentation updates should accompany the implementation of the new feature to guide users on how to leverage the enhanced uniqueness capability.

Completed


Process bar at Quotas section showing full after update to 17.61

Thanks for the great theme.
I've just noticed that the process bar is showing full on quotas (on status page sysinfo.cgi) even they are not.
Here is the html:
     13%

Which should be:
     13%

I hope that makes sense.

Yes, I'm aware of it. Working on it.

Similar problem here:

Unlimited label is also incorrect?

..and 16% doesn't look correct either.

Yeah. See on the right. All servers have limited quota. Dont' know why this two are shown as not unlimited. But percentage is wrong anyway.

Second server:

Percentage over 100% seems ok

Ok. Can you print the raw output? So I could figure this out? Because I have totally different output..
It's safe:
Open authentic-lib.cgi file and

Go to Perl modules in Webmin and make sure that you have installed Data::Dumper or just install it using Webmin interface (it's very small array printer for Perl)
Uncomment last commented block of text, so it looks like this:

sub print_array {
    my ($____v) = @_;
    use Data::Dumper;
    print '
';
    print Dumper $____v;
    print '
';
}

Add to the line 609 after foreach my $t ( @{ $info->{'chart'} } ) {
The following:
print_array($info->{'chart'});

Go back to the browser and reload the Sysinfo Page. Post that raw output from the second server too because it prints data differently. Later tonight, if I can't figure this out myself, will stick with Joe (VM dev) to fix it.

Maybe Data::Dump should also be installed. However on Debian it just works as it is.

Hm, uncommented the print_array subroutine but i'm getting
Undefined subroutine &main::print_array called at /usr/share/webmin/authentic-theme/authentic-lib.cgi line 609.

Did you install Data::Dumper?

..you know.. stay here please.. I think I found the universal way of fixing it..

..if you can print it great, if not.. I think I'll do it.

Can't get it to work.
Install of Data::Dumper was successful, but it doesn't show up in installed modules...

Like I mentioned installing Data::Dump is also need.

Data::Dump is installed

Strange. and the function doesn't run?

restaring Webmin maybe?

copied the subroutine to the top, now it works...
$VAR1 = [           {             'chart' => [                          100,                          101,                          0                        ],             'value' => '101.91 MB of 100 MB',             'desc' => 'xxx'           },           {             'chart' => [                          100,                          101,                          0                        ],             'value' => '101.42 MB of 100 MB',             'desc' => 'xxx'           },           {             'chart' => [                          100,                          101,                          0                        ],             'value' => '50.57 MB of 50 MB',             'desc' => 'xxx'           },           {             'chart' => [                          100,                          100,                          0                        ],             'value' => '100.84 MB of 100 MB',             'desc' => 'xxx'           },           {             'chart' => [                          100,                          96,                          0                        ],             'value' => '192.70 MB of 200 MB',             'desc' => 'xxx'           },           {             'chart' => [                          100,                          93,                          0                        ],             'value' => '102.75 MB of 110 MB',             'desc' => 'xxx'           },           {             'chart' => [                          100,                          91,                          0                        ],             'value' => '200.89 MB of 220 MB',             'desc' => 'xxx'           },           {             'chart' => [                          100,                          90,                          0                        ],             'value' => '90.36 MB of 100 MB',             'desc' => 'xxx'           },           {             'chart' => [                          100,                          85,                          0                        ],             'value' => '85.76 MB of 100 MB',             'desc' => 'xxx'           },           {             'chart' => [                          100,                          85,                          0                        ],             'value' => '127.79 MB of 150 MB',             'desc' => 'xxx'           }         ];

Yeah! Cool! I know how to fix it now!
I will post here when 17.62 is ready! Thanks! ;)

Please upgrade. The issue must be fixed now.

:+1:  Looking good!

Uff. :D

ok, my bar now is green at the right place, with the expected 14%

Good. ;)

Thanks looking great.


Simple implementation in Blender Video Sequence Editor

Thank you for PySceneDetect!
Here's an simple implementation of PySceneDetect in the Blender Video Sequence Editor:
https://github.com/tin2tin/shot_detection

I just used your example to do the detection with a fixed threshold of 30 for now, but let me know if there are something obvious I missed for better optimations.

This is very cool, thanks for sharing!  The biggest optimization for the most part is setting the downscale factor, so I think how you implemented it is fine.
If you're willing to give up some accuracy, you can try increasing it even higher.  Eventually there are some goals to try and optimize PySceneDetect, or try to use multicore/GPU to improve performance, but these are still under research.

TODO: I should create a section in the documentation that showcases some things that people are using PySceneDetect for (like this!).


Add list services by role that consume specific service

We can only list ays services by role based on their parent as stated here. I also need listing based on the consumers not only the parent. To be something like
/{role}:
          uriParameters:
            role:
              type: string
          get:
            displayName: listServicesByRole
            description: List all services of role 'role' in the repository
            queryParameters:
              parent:
                description: Only list service that have this parent
                type:        string
                required:    false
             consume:
                description: Only list service that consume this service
                type:        string
                required:    false
              fields:
                description: comma-seperated list of fields to be included in the response
                type:        string
                required: false

Implemented in https://github.com/Jumpscale/ays9/commit/124b6801a04e54b8e12dee25ef8b545b43126ab7


fix #7 by getting python path from ms-python.python api

Also removed getWorkspaceFolder call for use cases outside a workspace (editing a single file). I see no difference running the code action without setting the cwd.
I also took the liberty to clean up a bit of my previous logic around duplicate args.

Merged in a9a160e.


Reduce severity of 'successfully renewed lease' logging to DEBUG

Closes #34

Thanks, release 0.12 is underway.


dbt seed never completing

Describe the bug
Running dbt seed with a number of files >50k rows does not finish despite all jobs having completed on the cluster and connect_timeout value being set in the profile.
Steps To Reproduce
run dbt seed with a number of large files.
Expected behavior
Succeed or fail
Screenshots and log output
If applicable, add screenshots or log output to help explain your problem.
System information
tested on
dbt=1.5.7
databricks=1.5.6

The operating system you're using:
ubuntu 22:04
The output of python --version:
py38
Additional context
Add any other context about the problem here.

Thanks for filing the bug @colin-rogers-dbt.

I've also experienced large seeds not completing, particularly with CSVs with >10k rows.  It also takes upwards of 5 minutes to load a seed with ~7k rows.  However, if you provide the column_types in your schema.yml file, the load times for seeds drops dramatically.
This is because the databricks__load_csv_rows macro is extremely slow if you don't provide column_types and instead rely on the inferred types.  The macro is iterating over all rows and columns in the CSV in this double nested loop and performing type lookup for every value (!) if the column type is not specified.
The underlying agate_table object already has column type information and the line below is just doing a lookup of said type for that column:
{%- set inferred_type = adapter.convert_type(agate_table, loop.index0) -%}

As far as I can tell, there is no reason why this has to be done for every cell; a dict containing the column-level type inference could be constructed at the top, similar to:
{% set column_override = model['config'].get('column_types', {}) %}

It's not something you notice when seeds are small, but you definitely start to feel it once the rows cross >1k but is also affected by the number of columns since the total calls to adapter.convert_type() is n_rows * n_columns !
I hope this helps!

Thanks for the pointers.

Hey @benc-db!
Looks like all of the important type definitions, inference, and overrides actually happen in the databricks__create_csv_table macro when the table is created (understandably), so there seems to be no need for casting types in the databricks__load_csv_rows macro.
I tested this out by pulling down the connector and removing the type inference code within the double loop in the databricks__load_csv_rows macro (see diff below):
           {% for row in chunk -%}
               ({%- for col_name in agate_table.column_names -%}
-                  {%- set inferred_type = adapter.convert_type(agate_table, loop.index0) -%}
-                  {%- set type = column_override.get(col_name, inferred_type) -%}
-                    cast({{ get_binding_char() }} as {{type}})
+                  {{ get_binding_char() }}
                   {%- if not loop.last%},{%- endif %}

I'm not aware of any reason why you would need to do CAST(variable) AS type on your INSERT statement after already defining your column type definitions during table creation, but I could be missing some important use case.
I was able to load a seed with 47k records and 9 columns in about 1 minute with this change, whereas previously the seed hadn't even finished after 10+ minutes of loading.
It's a simple enough change you can add & test for your next release, or I can submit a separate PR myself if you'd like.  Thanks!

@nrichards17 awesome;  would very much appreciate a PR as I'm heads down on 1.7 compatibility at the moment, and then making MV/ST a real thing after that.


Modifying instances of a recurring rota event in Google Calendar results in loss of rota events

Currently-active rota events are getting deleted from our Cabot, resulting in all alerts going to the fallback duty officer.
This issue occurs when you have a recurring Google Calendar event for a rota and you modify a single event instance. For example, you may want to swap shifts with someone for a certain day.
Because this results in a last-modified date for the modified instance being newer than the last-modified date for the general instance, the shift updater deletes all other matching events from history. Subsequent event instances get re-added, but the current instance never does (since get_events only pulls future events).
This problem is possible because modified event instances maintain the uid of the general event; they are uniquely-identified by also having a recurrence-id field. This also exposes the issue that, when you modify a recurring event, all past shifts created by that event are erased from Cabot's history.
Suggested Fixes
I suggest that both these things happen:

In calendar._recurring_component_to_events, check to see if a rrule has a recurrence-id field. If so, return it with a uid equal to its actual uid concatenated with its recurrence-id field. This will prevent modified instances from causing general instances to be deleted.
In models.update_shifts, constrain the deletion of modified shifts to only delete future shifts (ones with end__gt=timezone.now()). This will prevent the history of shifts from being deleted. Check against the ending date here, not the starting date, so that a user can still modify the active shift by changing their Google calendar.

Workaround
Our tentative workaround is to modify the general event, giving it a last-modified date that is later than any modified instances. This still means we lose history, but it should prevent current events from being erased.

Sounds sensible. We never implemented using recurring rules so haven't hit this.
One question is: would it actually be easier to implement scheduling natively within Cabot? (Obviously it would create more opportunities for cooler things but would it replace lots of tricky bugs with a few moderately complex UI problems?)


how to set raw.githubusercontent.com to point to forked directory? (just a question)

hi @jnthas can you show me how to reconfigure raw.githubusercontent.com to point to my forked shared folder? thank you

if i enter an invalid (or unreachable) hostname, the panel gets stuck with the Splash screen "Downloading" screen.
not sure why the panel cannot download the raw json (e.g. https://raw.githubusercontent.com/robegamesios/clock-club/main/shared/donkey-kong.json) and just gets stuck with the splash screen
i updated this:
    port = 443;
    file = String("/robegamesios/clock-club/main/shared" + file);
  }```
is there another place i should update? thanks

@jnthas i figured out the issue of the SSL- memory allocation failed when trying to build on PlatformIO.  you will need to downgrade the espressif32 framework
platform = espressif32 @ ^5.4.0
that fixed the issue. I am also able to access the clockfaces for canvas on my forked repo.
https://github.com/robegamesios/clockwise/blob/main/firmware/platformio.ini
just incase someone else encounters this issue.
closing this

Great. Thank you.


Add support for configurable ZIP code

Current implementation uses a ZIP code with a fixed length (4). The zip length format and length differs between the countries (Slovakia: 5, US: 5, ...), the current implementation does not support those countries.
This PR brings support to configure the ZIP length in the config.json. It does not handle all possible cases (e.g. UK uses alphanumeric ZIP though...).
https://en.wikipedia.org/wiki/List_of_postal_codes

@michaelmcmillan @adriaanvanrossum remember to update config before next time you deploy

Thanks @fossecode, updated our config.


bug: Programmatically focus an ion-button

Bug Report
Ionic version:
[x] 4.x
Current behavior:
There is no .setFocus() Method on an ion-button element. The only method I found that could focus the element, was IONELEMENT.el.focus(). Unfortunately this method does not focus the button (checked with document.activeElement). Its a huge problem when trying to build an accessible app.
Expected behavior:
Either a .setFocus() method (like on an ion-input) or a .focus() method on the 'el' property, that focus the button correctly.
Steps to reproduce:
Access the button in TS Code and call the .focus() method on the 'el' property.
Related code:
@ViewChild(IonButton) button;
...
this.button.el.focus();

Thanks for the issue. I am going to close this as this is not a bug in Ionic Framework.
Many browsers will not let you programmatically focus an element if it does not have tabindex on it. This is true for Ionic components including ion-button. To get around this, you should set tabindex="0" on the ion-button.
I created a CodePen with an example: https://codepen.io/liamdebeasi/pen/gOPbqmG
Open the console, and you should see the ion-button as the focused element. For more information about focusing elements, please see: https://developers.google.com/web/fundamentals/accessibility/focus/using-tabindex.

This is working as expected, thank you. But theres another thing that breaks now. When I add the tabindex="0" I can focus the item programmatically but the action is not called (i.e. click event) when I press space or enter on it. When I remove the tabindex, I can tab to the ion-button (I dont understand why, because there is no tabindex) and the action is called when pressing space/enter (like a click). Is this a bug, or is there another thing I am missing?

What browser are you testing this on? I am testing this in my CodePen, and a click event I added is being called properly.

I am testing with the latest Firefox. Angular/Ionic application.
<ion-button (click)="onClick()" tabindex="0">TestButton</ion-button>
...
onClick() {
    alert('clicked');
}

Without tabindex I can move to the button with tab and call the event with enter/space when focused. With tabindex, I have two tab targets on the same button. I can tab to the button but the event is not triggered with enter/space. Then I tab again and the button is still focused (also document.activeElement is showing me ion-button again) and then the event gets triggered. Is it a bug that the button is focusable two times with tabindex?

@liamdebeasi were you able to to investiagte the described behavior?

This looks like how Firefox handles focussed buttons in the Shadow DOM. This is probably something we can improve with delegatesFocus, but Firefox does not support this yet.

Alright, thanks for the clarification.


Configuration Revamp Phase 1

What is this?
The configuration revamp is a long standing project that I have discussed in the past.  I had put together a Design Proposal ages ago, and even spoke about it at an early team meetup.
The current configuration code is awful, and requires us to jump through some amazing hoops just so it all works.  In addition, it's expensive.  Every time it's called, we have to see if anything has changed, both in the database and on the filesystem, and this bookkeeping takes both time and resources.
How does it work?
The revamp relies heavily on the config gem.  We have been using this gem for a long time in some side projects like the miq_bot.  It was used there, intentionally, as a PoC for the revamp, and has worked out well.  Huge thanks goes to @movitto for showing me that gem so long ago.
The config gem's major feature is its ability to "stack" configurations.  Each of these "stack" layers is an object that responds to .load and returns a Hash of the changes.  Each layer of the stack applies its changes on top of the previous layer to give a final configuration object which is assigned to the top-level constant, Settings.  Callers can access the values with dot notation or [] notation.   The gem uses a set of default YamlSource  objects, each representing different ymls file in the Rails config directory; in particular, the ones listed here.
The revamp takes advantage of this by introducing a new DatabaseSource object into the middle of the stack.  This object reads changes stored in a new table, named settings_changes, and the .load method converts those into a Hash which is applied into the config stack like any other source.
The settings_changes table is a simple key/value pair where the key is the /path/to/the/key and the value is the serialized value.  I've chosen serialization because we store strings, booleans, integers, and even arrays in the values, and I would have to carry a "value_type" column, or something, otherwise the burden of casting would be on the caller.
So, now instead of calling
VMDB::Config.new("vmdb").config.fetch_path(:api, :token_ttl)

one can just do
Settings.api.token_ttl

A new module Vmdb::Settings has been introduced to do operations on the global Settings object.  This includes things like applying changes via the .save! method, validating changes, and handling password encryption, decryption, and masking.
One other great feature is that the Settings constant only hits the database on .load! or .reload!, unlike VMDB::Config.new, where it would hit the database and filesystem on every call.  When the settings are changed in the UI, the server that is changed is notified to update itself, and so we only incur the database hit once on reload!
What changed?

Introduction of Settings and Vmdb::Settings classes.
VMDB::Config class still exists for temporary backward compatibility, but much of the now unused code has been removed.
Collapse all of the separate config/*.tmpl.yml files into a single new file config/settings.yml

By extension the Advanced Settings UI screen has become simpler because it no longer needs the drop-down for choosing which configuration file to change.

Remove every instance of merge_from_tempate_if_missing or similar behavior.  This is no longer needed because that's exactly what the config gem does!
Remove every instance of validate_config_settings in the workers.  This code is a poor man's run-time data migration, however, data migrations for configuration were so complicated, so it was generally a lot easier to do it this way in the past.  I've switched all of these to a one-time real migration to be rid of them once and for all.
Collapse a few semi-duplicated methods, that did things like masking passwords, into a single set of methods on Vmdb::Settings.  By extension, this also killed the Vmdb::ConfigurationEncoder
Remove the need to access configuration values with direct file access in initializers.  Instead, the Settings object is available extremely early in the boot process, so any initializer can just use it normally.
Add a data migration from the old configurations table to the new settings_changes table.

What new features do I have now?

The config gem offers the ability to specify local changes in config/settings.local.yml or in environment specific files, such as config/settings/development.local.yml.  This allows developers to create a file to make temporary settings changes without needing to store them in the database and without them showing up as git differences.  This could be very useful for changing log levels or settings like ui.mark_translated_strings.
Data migrations for configuration changes are MUCH simpler.  Removing keys is a simple matter of calling delete on a row.  Changing a key's location is a simple .where(:key => "/path/to/key").update_all(:key => "/path/to/new/key")

What future features can be built on top of this?

Phase 2: region and zone level changes.  Right now, as this changes the fundamentals of configuration, I've tried to not implement new features and keep as much parity as possible.  Once we can stabilize the base, then region and zone level changes are MUCH easier.

On top of that, promotion of miq_server changes to a region or zone is as simple as changing the resource_type/resource_id pair.

Pluggable Providers will be able to leverage this by having plugin specific configuration (or overrides) and then having a way to "register" that configuration into the stack of configurations.
VMDB::Config::Validator may just become a relatively simple Rails validator on the SettingsChange model.
VMDB::Config.new calls are deprecated, and can eventually all be changed to the new format.  In the UI, the get_vmdb_config method can be removed entirely.

What is left to do for this PR

[ ] Needs more specs for Vmdb::Settings
[ ] Add deprecation warnings to VMDB::Config.new and .config
[ ] Investigate if broker_notify_properties keys might want to switch to Array.
[ ] Verify cluster capacity keys which were numbers
[ ] Test migration with real user databases with configuration changes
[ ] Verify that the changes in #6737 are in settings.yml (or even other PRs merged ahead of it). Also verify that the validate_ worker code is removed / handled.

[ ] Create a spec, or a temporary spec, that verifies the contents are the same?

[ ] Verify that the changes in #7335 are in settings.yml
[ ] Test the multi-appliance setup where changing configuration of a remote server will cause that server to update itself and all of its workers.

https://bugzilla.redhat.com/show_bug.cgi?id=1082155
@jrafanie @chessbyte Please review.

Added a note to the OP about a "future feature" for pluggable providers... cc @durandom @blomquisg @martinpovolny @juliancheal @matthewd  @mzazrivec
@mzazrivec You might also be interested in the "local settings" feature, particularly for the ui.mark_translated_strings

Failures are from rebasing on top of #6737 as mentioned in the OP.

Updated the "new features" section of the OP with the ability to use Ansible/Puppet/Chef to externally maintain the configuration if needed.

@dclarizio @martinpovolny Can you review the UI portion?

un-WIPed.  Reviewed with @jrafanie.  All of the other unchecked items in the OP are either for follow up PRs, or ongoing testing.  This PR is blocking a couple other developer's fixes, so getting it in will unstick them (cc @abellotti @carbonin )

Nice work @Fryguy !!!

:tada: :bow:


Enhance comments for dspace.server.url and dspace.ui.url to clarify usage

References
Fixes #8387
Description
Small cleanup of description of dspace.server.url and dspace.ui.url settings to clarify how they are used.

@pnbecker : Could you review the updated descriptions in this PR?  This fixes the ticket #8387 ticket you created.


GET to a URL with a redirection never completes nor times out

Hi there,
I realized some requests in our backend are getting stuck, they don't complete or finish unless I set a deadline.
Upon further investigation, the requests that are getting stuck are ones with a redirect. Doing a HEAD instead of a GET does result in a response (with a 301 status when disabling redirects in the client).
I'm trying to use the FileDownloadDelegate and I also noticed that nothing is getting called (no calls to reportHead or reportProgress). But as I cannot issue a simple GET I guess that the issue is not in the FileDownloadDelegate.
This is some sample code that reproduces the issue:
import AsyncHTTPClient

let httpClient = HTTPClient(eventLoopGroupProvider: .createNew)

let url = "https://ipfs.infura.io/ipfs/QmVES23Brg2HP2Cn5AEzkiToYpAPxvYfXrHbrg91ScLUES/image.jpeg"

let response = try httpClient.execute(request: .init(url: url, method: .GET)).wait()

print(response)

When running that on my Mac (Xcode 13.3 Apple Swift version 5.6 (swiftlang-<IP_ADDRESS>3.62 clang-13<IP_ADDRESS>)), the request never completes.
Changing the .GET to a .HEAD does make the request complete successfully.

To workaround this issue, I'm creating an HTTPClient that does not follow redirects, to be able to inspect the location header and then use that URL on the client that downloads files.
I also noticed that if you do a HEAD request to a URL that will perform a redirect, there seems to be no way of obtaining the redirected URL (hence having to disable redirects on the workaround client). That would also be a nice to have.
Might be related to #538

I was able to investigate a bit more. It looks like the RequestBag receives the response head (receiveResponseHead0), which is processed by the state machine and leaves the state as .redirected(head, redirectURL).
Then the RequestBag receives response body parts (receiveResponseBodyParts0).
The state machine does not return a forward buffer (I understand that it's because we don't care about the body since it's a redirect), the RequestBag does not forward that to the delegate or consumes more body data.
One solution could be to succeed the request in receiveResponseHead0, which would cause the redirect to be performed, but two things come to mind:

The original request is not cancelled at that point, so we will still receive body parts, which triggers the preconditionFailure of RequestBag.StateMachine.receiveResponseBodyParts case .finished(error: .none).
I'm not sure if cancelling the original request is always a good idea, since the redirect could be in the same host and the connection could be reused. I'm not too familiar with Swift-NIO or async-http-client so I'm not sure if this would be handled by a lower-level layer and we don't need to worry about it.

I understand that making AHC a 3-tier library would probably make it easier to implement redirects more reliably, but it would be great to fix this for AHC v1.

Yeah, for a redirect we probably need to consume the body entirely.


Make Subscription a context manager

This adds __enter__ and __exit__ methods to Subscription, to make the following idiom possible:
with player.AVTransport.subscribe() as subscription:
    # Dummy
    event = subscription.events.get()

The subscription is automatically unsubscribed when exiting the with block.

Nice addition. Merged.
Remember the release notes.


Factor HTTP request timeout into a separate function

Motivation
Minor refactor for greater readability
Describe how to test your changes

[DONE] Verify that any agent IPC still works
Verify that server_timeout still applies:

Set server_timeout to 1 (second)
Use curl to request a flare, forcing http/1.1 (this timeout does not work for http/2): curl --http1.1 -d{} -v -k -H "Authorization: Bearer $(<auth_token)" https://localhost:5001/agent/flare
You should get a TLS error after 1 second when the connection is severed.

Checklist

[x] A release note has been added or the changelog/no-changelog label has been applied.
[x] The need-change/operator and need-change/helm labels has been applied if applicable.
[x] The appropriate team/.. label has been applied, if known.
[x] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[x] The config template has been updated if applicable.

Ah, I just noticed that this only works by chance: time.Now().Add(config.Datadog.GetDuration("server_timeout") * time.Second). That's parsing server_timeout as a duration, which happens to default to nanosconds, then multiplying that time.Duration by time.Second.  If the user wrote
server_timeout: 15s

then the effective timeout would be<PHONE_NUMBER>0s!
I'll take this moment to fix that up :)


Update migrate-packages-config-to-package-reference.md

Add a note that you need to set the Default package management format to PackageReference for the context menu item to show up.
Fixes https://github.com/NuGet/docs.microsoft.com-nuget/issues/916

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs/reference/migrate-packages-config-to-package-reference.md
:white_check_mark:Succeeded
View

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

You don't need the default format to be PR. It is a known issue and we have documented that on the same page.


SVGs not standard ?

I cant seem to open these svg files in standard image editing software, tried a few well known names.
Photoshop says this is not valid PostScript.
Is there some software you recommend I use ? Better, if free :)
Great artwork. BTW. Please accept my compliments on sharing these.

FWIW I tried opening standing.svg. Not sure if the others work.


Using the template without Docker

I'm trying to use the FastApi template without Docker..So, I removed the useless files and the app it works..but it seems after user login it desn't recognize jwt token and for any operation (for example get user id) it replies with 403 Forbidden..Using the api acce token it works, but when I use test token it fails, it doesn't recognize the credentials and it seems it has different tokens.
Some help?
Thanks.

Did you find a solution?


[1.0] Discovery: Clean up API for 1.0

Clean up our OpenAPI spec and produce a plan (and issues) that answer the following:

Can we now have a better API for upload/download?

Could we go with presigned + small proxy to store when it is unreachable?
Can we get rid of the content name in getObject / putObject, or can we make it meaningful?
Stage / Link object: Do we get rid of it or do we clarify the separation?

Do we need all these API calls?

Great opportunity to remove unused calls
Fix duplicated parts

Do we need all parameters in all calls?

Great opportunity to remove params from calls
Are all required parameters marked as such?

Out of scope

Add new API calls (adding a call is just a minor release), unless to replace removed ones
S3 gateway

Closing this one as it was moved to Done without closing.


Utilities.IsValid(Networking.LocalPlayer) returns false

This is not happening in VRChat but only in the Unity editor.
It can easily be tested with a simple U# script containing e.g. the following:
        private void Update()
        {
            if (Networking.LocalPlayer != null)
            {
                Debug.Log("Local player is not null");
            }

            if (!Utilities.IsValid(Networking.LocalPlayer))
            {
                Debug.LogError("Local player is not valid");
            }
        }

Result in editor:

Result in game:

Tested with Cyan Emu v0.3.4 Beta and Udon Sharp v0.19.5.

Thank you for finding this. I'll look into it. Do you know of any other items that might have improper IsValid implementation?

So far I only noticed it for VRCPlayerApis, I will let you know when I come accross others.

Hopefully fixed in e53d01f568698cb2da703969f24c4cd83e8a8990

It is working now. Thanks!


Fix filter However some of the figures are not being ported over and I need to figure out why. OH. IT'S BECAUSE THE DURN FILTER IS CATCHING THEM. (fixed in 0e63ceb)

closed because this was a silly demo :)


[CLOSED] Feature/#12 Travis CI support

 Issue by spyhunter99
Thursday Jun 30, 2016 at 00:12 GMT
Originally opened as https://github.com/chrisdoyle/gradle-fury/pull/14

spyhunter99 included the following code: https://github.com/chrisdoyle/gradle-fury/pull/14/commits

 Comment by chrisdoyle
Thursday Jun 30, 2016 at 03:08 GMT

Looks good!  Any way to consume/filter the properties from the gradle.properties into these?  (If not, no biggie!  Just gotta remember to change them in concert otherwise.  Good stuff, though -- thanks!

 Comment by spyhunter99
Thursday Jun 30, 2016 at 11:20 GMT

well that was painful, but it works

 Comment by chrisdoyle
Tuesday Jul 05, 2016 at 02:05 GMT

Thanks, @spyhunter99!


The Assert.AreEqual(object, object) is very error prone and poor design

Description
Due the fact that the Assert static class has an AreEqual(object, object) the compiler is always able to find a valid match during compilation if a type changes on one side of the assertion. This means all failures must be found very late in the game (read: after compilation and tests have been run).
This is generally not desirable. Either the AreEqual(object, object) method should go away, or a more strict version of AreEqual should introduced. An ideal API might be
void Equality<T>(T expected, T actual) where T: IEquatable;
void Equality<T>(T expected, T actual, IEqualityComparer<T> comparer);
void SameObject(object expected, object actual); // performs ReferenceEquals(expected, actual)

With this triple alone, a test suite would cover 99% of equality tests without having to worry about the duck-typing mess we have today.
Steps to reproduce
Setup a test with Assert.AreEqual(0, obj.value) with obj.value starting as an int, then change the type to TimeSpan (or whatever). It'll compile happily but fail when tests are run.
In a tiny project this is not a major issue, but in a large project where compilation take 45+ minutes and test runs can last an hour or more, this is a major time waster.
Expected behavior
.NET solutions not using duck-typing.
Actual behavior
MSTest uses duck-typing because ... ?
Environment
Windows 10, Visual Studio 2017, NetFx 4.6.2, stock MSTest nuget packages.

@whoisj,
This looks like a good usecase for writing a custom assertion. Would you like to give that a try?
Writing custom assertions is documented in this RFC.
There is also a sample available here: Sample,

@pvlakshm yeah sure, the unforunate part is a custom assertion is private and not shared as part of the core library; meaning other adopters of the library do not benefit. Additionally, the flawed (by C# 4.5+ standards) design remains and is too easy for a consumer to adopt - which raises the cost of accepting contributions because now I have another thing to check for in every code review.
Honestly, this library is getting old. Have a "mode shift" (whereby old features were disabled and newer ones enabled) by configuration would be a huge benefit.

@whoisj: Would the below API from here work?
AreEqual<T>(T expected, T actual)

You could mandate the use of this as opposed to the more general AreEqual(object, object). Agreed that this could be changed but pulling it out would be a breaking change.

Yeah, that's odd these APIs don't accept an IComparable<T>(we might need to revisit the default set of assertion APIs - @pvlakshm, @harshjain2). We eventually just do an object.Equals(). I'm not sure what you mean by defaulting back but as long as the API called is AreEqual<T>(T,T) if any of the parameters passed in is not T then it would be a build break. Hope that answers the query.
Yup, we can consider deprecating this in the next major milestone.

@abhitejJohn while I agree the AreEqual<T>(T,T) solves the duck typing problem, it does not necessarily solve the equality problem. C# Object.Equals(Object) method only tests reference equality. It is identical to ReferenceEquals(Object, Object), or in C (void *)pt31 == (void *)prt2;
Please keep me in the loop as this is a major headache for me. I've been asked to use the MSTest framework in preference to NUint/XUnit and this is has been causing test escapes and unexpected failures with every set of tests I've converted.
Thanks! :smile:

Assert.AreEqual<T> is not good enough due to type inference as well: if you make the type explicit on the call, most tools will (correctly) point out that you are being redundant and suggest removing the type.
Having the object version is terrible design after generics was introduced and should definitely be removed, or we'll never have proper compile-time safety.
I've also run though the same problem OP describes multiple times so having this corrected would be incredibly useful.

When is this going to be addressed? In many cases an overload with IEqualityComparer<T> is required.

Thanks folks. Would you mind giving the issue a 👍 and we'll prioritize this.  Sounds like we'd want to mark the API as obsolete for a few release and remove it in the next major.
/cc: @nohwnd

As our next version is a breaking change, I feel like it's better to include this change directly into it.
To sum it up, we will:

Change AreSame/AreNotSame overloads to accept generic instead of object, this way we ensure we cannot compare 2 different things. (https://github.com/microsoft/testfx/pull/1430)
Remove AreEqual/AreNotEqual overloads with "object, object" to leave only the overloads with generic type. Note that object.Equals(obj1, obj2) is correctly calling overrides of Equals.
Add overloads with the IEqualityComparer<T>

If type A implements IEquatable and type B also implements IEquatable (yes of A), then you could before call Assert.AreEqual(instanceOfA, instanceOfB) and it would work, now T is expected to be either both A or both B, even though they could be compared.
I mean it's questionable to compare two different types, but I haven't really seen this scenario discussed as breaking, so I thought I mention it here. Not sure yet, what the workaround for me will be...
class A : IEquatable
{
    public bool Equals(A other) { ... }
}

class B : IEquatable
{
    public bool Equals(A other) { ... }
}

// ...

[TestMethod]
public void Test()
{
    var instanceOfA = new A();
    var instanceOfB = new B();

    Assert.AreEqual(instanceOfA, instanceOfB);
}

@eXpl0it3r Thanks for the report, I definitely didn't consider this case. I guess we could simply add a new overload as public static void AreEqual<T>(IEquatable<T>? expected, IEquatable<T>? actual) and it would fix this case without breaking some other scenario (from what I can think of).


[WIP] example/todo list

@faisalil sorry I forgot to rebase my forked repo. will open another PR soon!

I am trying to learn some reasonml and also trying to do this.


support adapter.setOnItemClickListener

support to adapter.setOnClickListener
remove some Deprecated Api

fix https://github.com/CymChad/BaseRecyclerViewAdapterHelper/issues/861
fix https://github.com/CymChad/BaseRecyclerViewAdapterHelper/issues/865
fix https://github.com/CymChad/BaseRecyclerViewAdapterHelper/issues/859
fix https://github.com/CymChad/BaseRecyclerViewAdapterHelper/issues/850


Object ID keeps changing in non-changing environment

Preliminary Checks

[X] This issue is not a duplicate. Before opening a new issue, please search existing issues.
[X] This issue is not a question, feature request, or anything other than a bug report directly related to this project.

Description
Hi,
I am posting this here as I am using the python API, but I think this is issue is independent of the API as it is tied to using the core functionality.
I am using ZED 2 for tracking human skeletons, and I notice that the object id's can change over time for the same object. Documentation is a bit limited, but in the object detection module on your site it is described that the object id will remain constant for a detected object. I have looked into using the uuid field instead, but those are constantly changing too. Is this intended behaviour? Is there something I can do to reduce the chance of the SDK recognizing a tracked object as a new object?
Regards, Håvard
Steps to Reproduce

clone zed sdk samples
add a print statement to body_tracking.py to see object.id
run

Expected Result
Object ID remains constant for a detected object
Actual Result
Object ID sometimes changes
ZED Camera model
ZED2
Environment
OS: Windows 11, 64-bit
Python version: 3.6.2
Pyzed: 3.6

Anything else?
Perhaps expand documentation on topics around object detection: how it works, under which conditions and parameters that have impact on the quality of tracking results.

Hi @haavarpb,
Thanks for reaching out to us.
Indeed, a detected and tracked object should have a constant ID over time (you need to make sure the enable_tracking parameter is set to True). However, "ID switching" can indeed happen sometimes, and as you said it can be dependent on various conditions and parameters.
If it is possible for you, could you please send us an SVO where this phenomenon happens ? You can send it to<EMAIL_ADDRESS>if you feel more comfortable
Thanks

Hi, thanks for coming back to me.
I will come back to you with a recording if I come across something similar again, but for now, after tweaking the settings a bit and moving the camera to another position, it seems to have stabilized. Perhaps lighting also have an impact for tracking?
Regards


Integrate Into LineageOS

Have you considered integrating some of these features into LOS?
The profile features of LineageOS haven't been updated in long time. It could use a programmer to take control of them.

https://review.lineageos.org/q/topic:"eleven-profiles"
https://wiki.lineageos.org/contributing.html
https://github.com/LineageOS

Hello,
Yes, the profiles haven't been improved in years. Seems an abandoned feature. The thing is that modifying LOS requires a deeper knowledge of Android and Lineage, which I don't have. I don't even use LOS currently, because I don't have a phone that is compatible with it. That's quite sad. I've always tried to buy a phone supporting LOS, because I think is the best distribution of Android, but in the end I found easier to stick with the preinstalled version.
I still try to keep the app working, although there isn't really many people using it.

You really should talk to the LOS guys about integrating this piece of software into their latest releases!
Until LOS 18 there was a tile for the quick settings bar for switching profiles, in LOS 19 it's gone!
Your app adds this feature again. Thanks for that! :)

Yes - thank you very much for this little gem! Works beautifully in LineageOS 19 as well.


[Hub] Export Users

Tell us about your request
Export users list from an organization in Docker Hub. Add option to export DockerHub organization users' data as CSV.
Which service(s) is this request for?
Docker Hub
Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?
Ability to export the complete list of organization members to see who has access and regular audit processes.
Are you currently working around the issue?
Send an email to Docker support to have this .csv export.

Ability to export user data such as username and email address is in the need.

@tehautanop sorry I made a mistake, let's use your original ticket as the main one and mark this one as a dup.

duplicate https://github.com/docker/roadmap/issues/316

Duplicate of https://github.com/docker/roadmap/issues/316


Move conversion.py out of transforms/

It doesn't belong there; it's the only thing that's not about fermionic transforms.
This would be a breaking change.

I think its fine there. Its code for transforming between data structures.


MINOR: Self-managed -> Kraft (Kafka Raft)

Self-managed is also used in the context of Cloud vs on-prem and it can
be confusing.
Kraft is a cute combination of Kafka Raft and it's pronounced like craft (as in craftsmanship).
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

Thanks @rondagostino. I addressed the review comments.

@ijuma: I think "KRaft" would be better than "Kraft" since it emphasizes that Kafka Raft is a variant of Raft.  Of course, In the case of file paths, all-lowercase is fine (that's more in line with how we do other paths)
I agree with @jsancio that we may want to consider renaming some internal classes.  However, we should think about doing that in a separate PR to avoid making this one bigger.
LGTM once we rename Kraft -> KRaft


Support ordering by count

This is a really, really quick 'n' dirty PR to get ordering by count working. It is small enough that I think it is ok to add in as-is.
Having random instances of 'count.posts' and 'count__posts' throughout the model layer doing various things is in no way a long term strategy.
The concept of order needs to be split into a plugin much like pagination and counts, each plugin needs to define a set of properties on the model prototype where they share understandable concepts (like aggregate columns), and that should be the end of communication between them.
I have a long :airplane: next week during which I've earmarked doing these sorts of refactors, but for now this allows us to support ordering by counts in 0.7.2.

refs #6009

super quick and dirty way to support ordering by counts
@TODO refactor :)

Rebased :)

That's going to be an exciting :airplane: :-D.


TextEdit Widget

Description
Add a small widget that can be called during the tutorial to show the code behind a recipe.

The widget is meant to mimic the Godot Script editor, highlighting GDScript syntax.
It also needs a CopyButton which will copy the content of the TextEdit to the clipboard of the user.
And to maintain the animation feeling of the episode, the widget also need a way to animate the text inside of it, just like we can do with Label.percent_visible and Label.visible_characters, with these properties being exposed (through export var) to the Editor so we can insert their values as keyframes for Animations with AnimationPlayer.
It also need a way to hide some of the lines of its code, meaning that https://github.com/godotengine/godot/issues/19981 will probably have to either be fixed or to be workaround. So something like Label.max_lines_visible and Label.lines_skipped is close to what is needed. ¯\＿(ツ)＿/¯
Resume

A TextEdit that highlights Godot's API just like Godot's Script Editor
It needs Label.perfenct_visible and Label.visible_characters like features
Users, through a button, can copy the visible text to their clipboard

Todo

[x] Godot API highlight
[ ] TextEdit.percent_visible
[ ] TextEdit.visible_characters
[ ] TextEdit.lines_skipped
[ ] TextEdit.max_lines_visible

This shall be moved to the Kitchen Tales Show repository, this one is for the game.


my vehicle couldn't create a trajectory in cartographer using Gazebo simulator & 3D Lidar with IMU Sensor

hello,
I'm using a Gazebo Vehicle Simulator to do my own work and I've tried to save an offline map using cartographer_ros cause it's essential for future work.
but I got a problem that trajectory of vehicle in cartographer isn't moving at all. here's image of my probelm

bag & launch & urdf & config files url is downloadable here :
http://gofile.me/3TjkG/uI3PKTdj7
urdf sturucture is like
( /velodyne_points frame_id : dyros/dyros/velodyne_link & /imu frame_id : imu_link)
(long thin axis is map & odom axis)

dyros/base_footprint <==> /imu_link tf graph is like
( green axis in the left side is dyros/base_footprint )

rqt_graph is like

tf_graph is like

/imu topic data is like
( it's +9.8 in z-axis linear acceleration while idle, so my imu_link's z-axis is +z direction )

and I ran  rosbag_validate, I got some warnings and errors and I thought it's because of frequency of /velodyne_points topic
here's my rosbag_valiadte result :
[dyros-vehicle@dyros-vehicle]:~/bag_files/cartographer_bags$ rosrun cartographer_ros cartographer_rosbag_validate -bag_filename=/home/dyros-vehicle/bag_files/cartographer_bags/2018-02-02-01-41-04.bag
W0202 15:38:05.199172  3587 rosbag_validate_main.cc:341] frame_id "dyros/dyros/velodyne" on topic velodyne_points has serialization time<PHONE_NUMBER>00 but sensor time<PHONE_NUMBER>00 differing by -0.117 s.
E0202 15:38:05.408354  3587 rosbag_validate_main.cc:369] Point data (frame_id: "dyros/dyros/velodyne") has a large gap, largest is 0.16 s, recommended is [0.0005, 0.05] s with no jitter.
I0202 15:38:05.408546  3587 rosbag_validate_main.cc:385] Time delta histogram for consecutive messages on topic "velodyne_points" (frame_id: "dyros/dyros/velodyne"):
Count: 345  Min: 0.119000  Max: 0.160000  Mean: 0.128014
[0.119000, 0.123100)                    ####    Count: 62 (17.971014%)  Total: 62 (17.971014%)
[0.123100, 0.127200)               #########    Count: 147 (42.608696%) Total: 209 (60.579712%)
[0.127200, 0.131300)                    ####    Count: 67 (19.420290%)  Total: 276 (80.000000%)
[0.131300, 0.135400)                      ##    Count: 42 (12.173913%)  Total: 318 (92.173912%)
[0.135400, 0.139500)                       #    Count: 10 (2.898551%)   Total: 328 (95.072464%)
[0.139500, 0.143600)                            Count: 4 (1.159420%)    Total: 332 (96.231888%)
[0.143600, 0.147700)                            Count: 1 (0.289855%)    Total: 333 (96.521736%)
[0.147700, 0.151800)                            Count: 3 (0.869565%)    Total: 336 (97.391304%)
[0.151800, 0.155900)                            Count: 6 (1.739130%)    Total: 342 (99.130432%)
[0.155900, 0.160000]                            Count: 3 (0.869565%)    Total: 345 (100.000000%)
I0202 15:38:05.408661  3587 rosbag_validate_main.cc:385] Time delta histogram for consecutive messages on topic "imu" (frame_id: "imu_link"):
Count: 2220  Min: 0.015000  Max: 0.025000  Mean: 0.020000
[0.015000, 0.016000)                            Count: 2 (0.090090%)    Total: 2 (0.090090%)
[0.016000, 0.017000)                            Count: 3 (0.135135%)    Total: 5 (0.225225%)
[0.017000, 0.018000)                            Count: 5 (0.225225%)    Total: 10 (0.450450%)
[0.018000, 0.019000)                            Count: 12 (0.540541%)   Total: 22 (0.990991%)
[0.019000, 0.020000)                      ##    Count: 225 (10.135135%) Total: 247 (11.126126%)
[0.020000, 0.021000)      ##################    Count: 1948 (87.747749%)        Total: 2195 (98.873871%)
[0.021000, 0.022000)                            Count: 0 (0.000000%)    Total: 2195 (98.873871%)
[0.022000, 0.023000)                            Count: 14 (0.630631%)   Total: 2209 (99.504501%)
[0.023000, 0.024000)                            Count: 5 (0.225225%)    Total: 2214 (99.729729%)
[0.024000, 0.025000]                            Count: 6 (0.270270%)    Total: 2220 (100.000000%)

/imu topic's frequency is around 50Hz
/velodyne_points's frequency is around 10Hz
my question is wouldn't it be a problem?
and if my problem is because of low frequency of data, isn't there any way to solve this?
Thank you!

I've found an incomplete answer by myself without any help.
I think It's because of lua configuration file settings ( i.e. backpack_3d.lua )
TRAJECTORY_BUILDER_3D.num_accumulated_range_data = 1
I changed above setting from 160 to 1, my vehicle started moving.
close this issue


[Snyk] Security upgrade astro from 3.6.5 to 4.12.2

This PR was automatically created by Snyk using the credentials of a real user.![snyk-top-banner](https://github.com/andygongea/OWASP-Benchmark/assets/818805/c518c423-16fe-447e-b67f-ad5a49b5d123)
Snyk has created this PR to fix 1 vulnerabilities in the npm dependencies of this project.
Snyk changed the following file(s):

package.json

Vulnerabilities that will be fixed with an upgrade:

Issue
Score

Cross-site Scripting (XSS) SNYK-JS-ASTRO-7547139
  541

[!IMPORTANT]

Check the changes in this PR to ensure they won't cause issues with your project.
Max score is 1000. Note that the real score may have changed since the PR was raised.
This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Cross-site Scripting (XSS)

👷 Deploy Preview for scdesigner processing.

Name
Link

🔨 Latest commit
3bbeb969fb31afacb9520be951abf2c07b060846

🔍 Latest deploy log
https://app.netlify.com/sites/scdesigner/deploys/669e12d23ebc4600081ce29e


Feasibility of new method called process_request_and_yield

Problem: JR gives about 90% of the lifting power to get what we need, however there are 10% of the use case where custom end point is better than POSTing to the same end point 10000 times.
Solution: Create custom end point, however, this will lose? all the abilities that JR provides, like includes, filters, etc.
Is it possible/feasible to add a new method called something along the lines of process_request_and_yield (which is a copy of process_request from ActsAsResourceController which can be called from the controller as such:
  def custom_method
    params[:id] = params[:job_id]
    params[:action] = 'show'
    process_request_and_yield do |operation_results|
      model = operation_results.results&.first&.resource&._model
      if model
        model.cure_cancer!
        model.send_email!
        model.do_delayed_job!
      end
    end
  end

  def process_request_and_yield
    @request = JSONAPI::Request.new(params, context: context,
      key_formatter: key_formatter,
      server_error_callbacks: (self.class.server_error_callbacks || []))
    unless @request.errors.empty?
<EMAIL_ADDRESS>    else
      operation_results = create_operations_processor.process(@request)
      yield operation_results
      render_results(operation_results)
    end

  rescue => e
    handle_exceptions(e)
  end

Or am I approaching this from a totally wrong perspective?

@billxinli We have added the concept of processors in #694. Processors may help you with a place to alter the way an operation is handled. So far this only in the master branch and has not been released yet. It will not provide support to custom end points, though I think you could more easily create a custom operation and a processor method to apply it.
Of course a custom method would not be compliant with the JSON API spec.
As to whether you are approaching it wrong, I don't know. There isn't currently a way to update multiple resources in one request. This is a planned extension to the spec and we fully plan to support it in JR. But if you need this now you will probably need to add a custom end point.


getPurchases seems to not be returning anything.

I've stepped through the code and I can see it making the call to getPurchases through invokeMethod in platform_channel.dart however I never see a result come back for it.
I am using the iOS Simulator on MacOS (obviously) to test this.
Any tips would be awesome.

Have you setup non Apple Id account to test in app purchases on iOS? There is specific procedure you would need to follow to get that going.

Nah - i'll look into it - thanks!


feat(preset-env): Upgrade browserslist-rs

Description:
Compilation time of browserslist-rs has beed reduced by 32%. See: https://github.com/browserslist/browserslist-rs/pull/23
But, it's still slower that oxc-browserslist:

while browserslist-rs costs about 3.9s.
BREAKING CHANGE:

Related issue (if exists):
Close #9014

The CI is failed, can you take a look? ❤

I failed to fix it. Let's ask help to @kdy1 .

Can you check failing tests?

time cargo build --release --features swc_ecma_minifier/concurrent

Before this PR:
    Finished `release` profile [optimized] target(s) in 37.52s
cargo build --release --features swc_ecma_minifier/concurrent  365.78s user 11.74s system 1004% cpu 37.592 total

Does it look slower? That's weird.

I think it's a noise


[T4A3][F11-A2]Tiong YaoCong

Inheritance

Create of new contact class
Making Email, Phone, Address class to be subclasses of contact
Create super class methods for repeated methods
Removal of subclass variables and methods
Regression Test completed

Ready For Review


Issue: Renewal and Letsencrypt Ratelimit

If I have more than 5 certificates for a domain registered (subdomains....) , the monthly renewal will renew only the first 5 certificates of this domain, in case of the LetsEncrypt Rate Limit. Sbdomains 6 - 7 - .... will not be renewed.
https://community.letsencrypt.org/t/rate-limits-for-lets-encrypt/6769

https://community.letsencrypt.org/t/rate-limits-for-lets-encrypt/6769/2
Rate limits have been increased now to 20. If more domains than that perhaps this plugin could stagger the renews across multiple weeks? Having said that-- I don't need that, 20 is more than enough for me.

From the community forum, word is that this plugin is requesting new certs instead of renewing current certs. In fact sometimes my automatic renewals failed with the following error (NB Error creating new cert):
"type":"urn:acme:error:rateLimited","detail":"Error creating new cert :: Too many certificates already issued for: ovh.net","status":429} error.

See: https://community.letsencrypt.org/t/rate-limited-domain/15173/6
By changing that behavior, the issue of rate limits on automatic renewals would go away.

@chreds Rate limits only apply to new certificates, not renewals - that's part of the plugin's problem!
"Added an exception to this limit for renewing certificates (issuing a new certificate with same names as a previous one)."

The extension now performs a daily check for certificates which are about to expire and renews them not earlier than 30 days before their expiration.
Let me know if have more suggestions how to improve it.

@xgin quick question. In the 2.x plugin it was fixed as it seems.
I had a setup with a 1.9.x version and it seems it checked a domain every day and file cert requests in the same interval (according to crt.sh).
And this may ne the cause where we got

Invalid response from https://acme-v01.api.letsencrypt.org/acme/new-cert: Error creating new cert :: too many certificates already issued for exact set of domains: example.com,www.example.com.
Type: urn:acme:error:rateLimited.

But the certificate files were not updated or created so we ended with an expired cert which locked users out as we use HSTS. Is this fixed or a separate issue? Do you have any ideas where these unused certs could be (they are not in live or archive)?

I am experiencing rate limit problems in connection with issue #194. The server is trying to renew the certificate every hour (as I can see on crt.sh, where it lists hourly renewals followed by pauses that are obviously caused by the rate limit. Is there any way I can stop these renewal attempts just for that domain?

@oliver-graetz which version of the Plesk LetsEncrypt plugin is installed?

I mentioned that in my comment on issue #194: v2.5.3-354


JUNIOR version should work when general TS is installed

When both JUNIOR and general versions are installed

Deal with file associations correctly (change save file extension to tsj)
Install TSJ into separate folder (fix installation path)

Done in #857

Done


Decide which bridging models to show in Figure 16 (last year's Fig 17 presumably not needed).

Doesn't build yet, but need to first decide which ones to show, and how to keep it flexible for years when we do add new survey data (based on Chris's new structure).

I think there are few enough that we could get away with a single bridging model set (i.e., one figure this year).  The lines seem to separate enough that you can see what is going on pretty well.

I just kind of figured the path of least resistance would be to include them all and explain in the figures that some will not lead to any changes depending on the year or drop the two survey ones that are in the middle if it is a non-survey year.

this can be closed, correct?


"Events should be sent by kubelets and the scheduler about pods scheduling and running" flaky on GKE 0.17.0

Still early in diagnosis, but soon after cutting 0.17.0, our early internal testing show this test as flaking. It's pretty bizarre, though, given the test isn't flaking on GCE, or even the continuous integration runs on GKE.

cc @roberthbailey @a-robinson @quinton-hoole

So far, I've tried reproing this on a bare cluster 100 times, no joy. Now I'm trying up/test/down, no immediate joy (but it's a flake). If I get to the point of testing up/e2e/down, I might as well call it "Jenkins" and be done with it, but I guess it's time to start looking through logs instead.
(As for the P0, trying to figure out if we need a cherry-pick, or if we let the flake proceed on in the entire 0.17.0 train.)

+1 to ironing out a flake; v0.16.0 had a flake (or maybe even a consistently-failing test) which made us turn off tests that would run against it for weeks. This is especially important now that we're doing soak tests.

@lavalamp (since it's related to events)

The test itself looks racy; there's nothing to guarantee that the events will have made it through the system by the time the pod is running. Generally one would expect that, but there's no guarantee.

@zmerlynn Can you paste some sample failures here?

go/k8s-test/job/kubernetes-e2e-gke-test/4534/console
------------------------------
Events
  should be sent by kubelets and the scheduler about pods scheduling and running
  /go/src/github.com/GoogleCloudPlatform/kubernetes/_output/dockerized/go/src/github.com/GoogleCloudPlatform/kubernetes/test/e2e/events.go:124
[BeforeEach] Events
  /go/src/github.com/GoogleCloudPlatform/kubernetes/_output/dockerized/go/src/github.com/GoogleCloudPlatform/kubernetes/test/e2e/events.go:41
>>> testContext.KubeConfig: /var/lib/jenkins/jobs/kubernetes-e2e-gke-test/workspace/.config/gcloud/kubernetes/kubeconfig
>>> testContext.KubeContext: gke_kubernetes-jenkins_us-central1-f_jenkins-gke-e2e-test
[It] should be sent by kubelets and the scheduler about pods scheduling and running
  /go/src/github.com/GoogleCloudPlatform/kubernetes/_output/dockerized/go/src/github.com/GoogleCloudPlatform/kubernetes/test/e2e/events.go:124
STEP: creating the pod
STEP: submitting the pod to kubernetes
STEP: waiting up to 5m0s for pod send-events-1f696e3b-f8b2-11e4-98a6-42010af01555 status to be running
INFO: Waiting for pod send-events-1f696e3b-f8b2-11e4-98a6-42010af01555 in namespace default status to be "running" (found "Pending") (4.811962ms)
INFO: Waiting for pod send-events-1f696e3b-f8b2-11e4-98a6-42010af01555 in namespace default status to be "running" (found "Pending") (5.009229766s)
INFO: Waiting for pod send-events-1f696e3b-f8b2-11e4-98a6-42010af01555 in namespace default status to be "running" (found "Pending") (10.014346546s)
INFO: Waiting for pod send-events-1f696e3b-f8b2-11e4-98a6-42010af01555 in namespace default status to be "running" (found "Pending") (15.018975854s)
STEP: verifying the pod is in kubernetes
STEP: retrieving the pod
&{TypeMeta:{Kind: APIVersion:} ObjectMeta:{Name:send-events-1f696e3b-f8b2-11e4-98a6-42010af01555 GenerateName: Namespace:default SelfLink:/api/v1beta3/namespaces/default/pods/send-events-1f696e3b-f8b2-11e4-98a6-42010af01555 UID:1f786b24-f8b2-11e4-b7dc-42010af0eaa4 ResourceVersion:2249 CreationTimestamp:2015-05-12 07:21:04 -0700 PDT DeletionTimestamp:<nil> Labels:map[time:282813429 name:foo] Annotations:map[]} Spec:{Volumes:[] Containers:[{Name:p Image:gcr.io/google_containers/serve_hostname:1.1 Command:[] Args:[] WorkingDir: Ports:[{Name: HostPort:0 ContainerPort:80 Protocol:TCP HostIP:}] Env:[] Resources:{Limits:map[] Requests:map[]} VolumeMounts:[] LivenessProbe:<nil> ReadinessProbe:<nil> Lifecycle:<nil> TerminationMessagePath:/dev/termination-log ImagePullPolicy:IfNotPresent SecurityContext:0xc20890a0a0}] RestartPolicy:Always TerminationGracePeriodSeconds:<nil> DNSPolicy:ClusterFirst NodeSelector:map[] Host:k8s-jenkins-gke-e2e-test-node-1 HostNetwork:false} Status:{Phase:Running Conditions:[{Type:Ready Status:True}] Message: HostIP:<IP_ADDRESS> PodIP:<IP_ADDRESS> ContainerStatuses:[{Name:p State:{Waiting:<nil> Running:0xc20890a180 Termination:<nil>} LastTerminationState:{Waiting:<nil> Running:<nil> Termination:<nil>} Ready:true RestartCount:0 Image:gcr.io/google_containers/serve_hostname:1.1 ImageID:docker://00619279d4083019321e4865829a65a550a23c677d76cbb44274ade0d92ca7a9 ContainerID:docker://a8538d32db8b6fbd02319270e86b059264e3a6cd0b38a8e4c090a825dab2abad}]}}
STEP: checking for scheduler event about the pod
W0512 07:21:24.465820   16890 request.go:291] field selector: v1beta3 - events - involvedObject.kind - Pod: need to check if this is versioned correctly.
W0512 07:21:24.465854   16890 request.go:291] field selector: v1beta3 - events - involvedObject.namespace - default: need to check if this is versioned correctly.
W0512 07:21:24.465866   16890 request.go:291] field selector: v1beta3 - events - source - scheduler: need to check if this is versioned correctly.
W0512 07:21:24.465873   16890 request.go:291] field selector: v1beta3 - events - involvedObject.uid - 1f786b24-f8b2-11e4-b7dc-42010af0eaa4: need to check if this is versioned correctly.
Saw scheduler event for our pod.
STEP: checking for kubelet event about the pod
W0512 07:21:24.534535   16890 request.go:291] field selector: v1beta3 - events - involvedObject.kind - Pod: need to check if this is versioned correctly.
W0512 07:21:24.534546   16890 request.go:291] field selector: v1beta3 - events - involvedObject.namespace - default: need to check if this is versioned correctly.
W0512 07:21:24.534552   16890 request.go:291] field selector: v1beta3 - events - source - kubelet: need to check if this is versioned correctly.
W0512 07:21:24.534558   16890 request.go:291] field selector: v1beta3 - events - involvedObject.uid - 1f786b24-f8b2-11e4-b7dc-42010af0eaa4: need to check if this is versioned correctly.
STEP: deleting the pod

• Failure [20.453 seconds]

@zmerlynn Actually this test is flaky across the board, and has been for some time. If you look at kubernetes-e2e-gce Test Results Analyser in Jenkins, you'll see about 8 failures in the past few hundred runs.  I think lavalamp is correct - the test needs to retry/wait for the events to get through.  Specifically, this code needs to be wrapped in a util.Poll():
https://github.com/GoogleCloudPlatform/kubernetes/blob/962f10ee580eea30e5f4ea725c4e9e3743408a58/test/e2e/events.go#L93

Yeah if the kubelet event shows up less often than the scheduler event, that would make sense, since there'll have been less time.

I can whip up a quick fix now.

If it's a known flake, it's not going to block us. We should get a fix in soon for the next release, though.

Nearly done.


Embedded app with events and news

Tasks:

[ ] #1440 Improve data structure so we can handle periodic events better

Change dates structure
Save 'event type' (cursus/creativiteit/gezondheid/voeding/...) or whatever it's called so we can filter on it. No event types for google calendar events

[ ] Make it possible to open embedded app from service menu item. Embedded app should receive some context (the menu item that was used to open it)

[ ] Server + web UI
[ ] Android
[ ] iOS

[ ] Embedded app should be able to execute getNewsGroups and getNewsItems calls (bridge between javascript and ios/android rpc calls, use some generic handler that can be easily reused like the IntentResponseHandler on android)

[ ] Android
[ ] iOS

[ ] System.api call to fetch agenda filters (only types for now)
[ ] System.api call to fetch agenda items with or without types filter
[ ] #1479 Create embedded app to be used for various OCA stuff (starting with events). No actual functionality yet.
[ ] Create generic 'loading/error' component to be used everywhere
[ ] List of agenda events
[ ] List of news items
[ ] Filter agenda events page
[ ] Event detail page


How do I use extensions in browser?

Hi, How can I use the extension using the Browser? Because for "tonal.min.js" functions everything works fine with the global object "Tonal", but when I try the example from the doc, i.e in detect:
import { chord } from "tonal-detect"
console.log(chord(["C", "E", "G", "A"])) // => ["CM6", "Am7"]
the console prints out: "Uncaught SyntaxError: Unexpected token import"
Can somebody help me please? Thanks!

Hi @DvDream,
I'm afraid you have to use a tool to convert your code to something that browsers understand. The easiest way I know is to use parcel. Other alternatives are browserify, rollup or webpack (in order of complexity).
The general idea is to create a file with .js extension that imports the code (the same way you did above) and then use the tool to convert that into another .js file compatible with browsers.
Here is an example with browserify: https://github.com/browserify/browserify#example
This is more a tutorial: https://medium.com/@tkssharma/browserify-for-loading-common-js-modules-b0d73791afa6
Hope it helps!

Hi @DvDream,
I'm afraid you have to use a tool to convert your code to something that browsers understand. The easiest way I know is to use parcel. Other alternatives are browserify, rollup or webpack (in order of complexity).
The general idea is to create a file with .js extension that imports the code (the same way you did above) and then use the tool to convert that into another .js file compatible with browsers.
Here is an example with browserify: https://github.com/browserify/browserify#example
This is more a tutorial: https://medium.com/@tkssharma/browserify-for-loading-common-js-modules-b0d73791afa6
Hope it helps!

Thank you! I'm using parcel now and I solved my problem!! :D


Sprint Signup : Already registered users are allowed to Signup multiple times

User<EMAIL_ADDRESS>First Signup : Created user with workspace Sprint. User created successfully.
Now logged on to : https://sprint.rest
Again signed up with same user details
Name : Dedeepya Dodla
Email<EMAIL_ADDRESS>Workspace : Sprint (2nd Time), SprintSignUp(3rd Time)
Issue1 :  Registered users, should get an error saying they are already registered.
All the time I see that workspace is Sprint which is created first time, so we are not overriding workspace created first.

Issue is fixed

Passed

You can close the issue if its passed

Could not see the Close Issue buton. @wolfie-90 might see it.


External APIs: Feature research

User story

As a backend developer
I want to research for features that OSM/Here API have
So that I can integrate the most important features into the Backend component

Acceptance criteria

possible features are listed
focus on routing
possible features were discussed within the group
the result of the discussion is written down in issues (see #152  as example)

Definition of done

Code was reviewed by another person
GitHub CI runs successfully
Feature is merged into main branch

2021-12-14
External API research

OSM

Bounding box for the results
Tile service:

Returns all vector tiles in a given square, allowing to gather info road sections

name of the road
speed
bearing
turn_angle

Overpass API

query for features like

street surface
sidewalk
maxspeed
lit (lighting conditions)
road type

highway
cycleway
footway
sidewalk
winter road

road signs like

overtaking
parking
priority road

amenity

charging station
bar
biergarten
restaurant
toilets

barrier

toll_booth
toll_gantry

Openrouteservice

Allows for navigation and excluding toll roads

Graphhopper

Charging stations along the route

HERE

Vector Tile API

roads layer

toll
fclass with motorway etc
tbc


Strange: Local files fail to load, but only for previously downloaded file

Hi all,
I'm using react-native-sound to play files downloaded with react-native-fetch-blob and stored in local storage. But strangely, while I'm able to immediately play the file right after it's downloaded and stored, the file fails to load after I close the app and restart again. Here's a screenshot of the console:

Section 4 is freshly downloaded and I'm able to play it, while Section 5 was a file downloaded in the previous run of the app. As you can see, the file path structure is exactly the same. So I'm rather baffled by why this is happening!
Here's the part of my code that handles file loading and playing:
let Playing

function setCurrentPlaySession(section) {
  console.log('set play session to: ', section.section_id)
return {
  type: types.PLAYING,
  payload: section
}
}

export function playFile(sectionInfo) {
  return (dispatch) => {
    Playing = new Sound(sectionInfo.filePath,'', error => {
      if(error) {
        console.log(`Is section ${sectionInfo.section.section_id} loaded? ${Playing.isLoaded()}`)
        console.log(`failed to load section: ${sectionInfo.section.section_id}`, sectionInfo.filePath, error)
        return
      }
      dispatch(getPlayDuration(Playing.getDuration()))
      console.log(`section ${sectionInfo.section.section_id} is playing from ${sectionInfo.filePath}`)
      dispatch(setCurrentPlaySession(sectionInfo.section))
      if(sectionInfo.currentProgress) {
        Playing.setCurrentTime(sectionInfo.currentProgress)
      }
      Playing.play((success) => {
        console.log('finished playing ')
      })
    })

  }
}

Any insights on this would be much appreciated. Thanks!
This is only on IOS simulator. I'm using react-native 0.41 and react-native-sound 0.9.
Oh, and I also tried rolling back to v 0.8 of the library, as suggested by one response in a similar open issue before this one. It didn't help. Playing audio is the most key functionality of my app. So I'm rather frustrated right now. Looking into other libraries. But I really like this one, when it works.

+1

BTW, I also tried rolling back to v 0.8 of the library, as suggested by one response in a similar open issue before this one. It didn't help :(

@benvium Any suggestions?

I've noticed that you're not releasing the sound when it's done. This may cause issues  - though perhaps not the exact issue you're seeing.
try seeing if this helps:
Playing.play((success) => {
        console.log('finished playing ')
        Playing.release();
      })

@benvium Thanks for the advice. I am facing the exactly the same problem.
Releasing the player may cause issues but not this one I've just tested and the error still persists.

@benvium Just tried it. I released the session whenever playing stopped and also when paused. Doesn't help. What I'm trying to think is if there's any differences between a file downloaded in the current run of the app, v.s. a file downloaded in the previous run. I can think of any difference right now, as RNSound is retrieving these from the same folder. It seems to be a simple action.
It looks like I'm not the only person experiencing this issue. Have you yourself tried downloading a file, storing it locally, and playing it with react native sound after closing and reopening the app? Does it not cause any problem for you?

Why did the application UUID change between sessions? Have you verified that the mp3 file actually exists on that path?

@zmxv Not sure what you were referring to by UUID change. The files do exist. I've opened the folder and checked. The two files I was trying to play in the screenshot are in the same folder. The only difference btw them is one is downloaded in the current run of the app, the other one (failed to play) is downloaded in the previous run.

@natashache Does this happen when the app runs on a device?

@natashache I'm wondering if it's due to react-native-fetch-blob storing the file in the temporary directory (I can see RNFetchBlob_tmp in the path to the file).
If you download to a non-temp directory does it then work?
e.g. (from their docs)
let dirs = RNFetchBlob.fs.dirs
RNFetchBlob
.config({
  // response data will be saved to this path if it has access right.
  path : dirs.DocumentDir + '/path-to-file.anything'
})
.fetch('GET', 'http://www.example.com/file/example.zip', {
  //some headers ..
})
.then((res) => {
  // the path should be dirs.DocumentDir + 'path-to-file.anything'
  console.log('The file saved to ', res.path())
})

@benvium @zmxv I realized the problem is related to what Ben mentioned above-- the file system of fetch-blob "moved" the files to a different sub-folder when restarting the app. I don't know how to fix it yet. I Posted a question to react-native-fetch-blob. Hopefully get a response soon. @Pedneri1, maybe this is your problem as well?

Unfortunately this is not my problem.
This is how i fetch the data using RNFetchBlob
RNFetchBlob
    .config({fileCache : true,appendExt : 'mp3'})
    .fetch('GET', this.props.audioSource)
    .progress((received, total) => {this.setState({downloadProgress: received/total})})
    .then((res) => {
        AsyncStorage.setItem(this.props.audioId+'', res.path());
        console.log('The file saved to ', res.path());
    });

The result from my console.log is: (I shortened the full address to ...)
'The file saved to ', '/Users/.../Documents/RNFetchBlob_tmp/RNFetchBlobTmp_babe4c81-1b8c-4fdb-a63d-8bde327f5908.mp3'.
No matter how many times I open and close the app, the files are still on this folder and I get the error: (the same as shown on @natashache print).
'Error while trying to load the file', { code: 'ENSOSSTATUSERRORDOMAIN-10875',
	  message: 'A operação não pôde ser concluída. (OSStatus erro -10875.)',

The code to play the downloaded file is this:
                let player = new Sound(this.props.audioSource ,Sound.MAIN_BUNDLE, (error) => {
                    console.log(this.props.audioSource);
                    if(error){
                        console.log("Error while trying to load the file", error);
                        return;
                    }
                });

                player.play((success)=>{
                    if(success){
                        console.log("Playing successfully");
                        player.release();
                    } else {
                        console.log("Playing not so successfully");
                    }
                });

where this.props.audioSource is the path to the file saved.

@Pedneri1 On my side, the change in file path btw app runs only happens for the folder between Application and Documents, i.e. it's a child of Application and the parent of Documents (highlighted below in red). The other parts are identical. Are you sure your entire path is the same? Cuz that would be even stranger.

@natashache I just re-checked and the file doesn't change its path.
With the terminal, I opened:
/Users/pedroneri1/Library/Developer/CoreSimulator/Devices/E1286B0B-995C-443F-AC38-16751FDF960B/data/Containers/Data/Application/1F241259-8E5A-4A83-86C7-636D56B30FFB
folder and  /Users/pedroneri1/Library/Developer/CoreSimulator/Devices/E1286B0B-995C-443F-AC38-16751FDF960B/data/Containers/Data/Application/1F241259-8E5A-4A83-86C7-636D56B30FFB/Documents/RNFetchBlob_tmp folder.
Opened and closed the app many times, and for each time I listed the contents and nothing changed.

Try replacing Sound.MAIN_BUNDLE with ''.  Otherwise it'll prepend your path with path to the bundle itself which you probably don't want

I replaced, and now it looks like this:
let player = new Sound(this.props.audioSource, '', (error) => {
                    if(error){
                        console.log("Error while trying to load the file", error);
                        return;
                    }
                });

But i still get the error.

I made the following change to make it work, at least on simulator for now. Not sure what'd happen on an actual phone.
When retrieving the file, instead of using the file path as returned by res.path() as in the code above, I now directly use filePath = RNFetchBlob.fs.dirs.DocumentDir + '/courseSections/' + sectionInfo.section.section_id + '.mp3' when retrieving the file.
But at the end of the day, this is not a react-native-sound issue. So I'm closing this thread for now. Thanks everyone for the inputs!


Lots of errors on the site

I've noticed a huge number of issues in my last visit. I'm guessing the API limit is being reached when the dev page is opened due to concurrent requests for images/data.

Just visiting the site and refreshing a few times, I didn't notice these errors. Maybe there was a temporary rate limit being hit?

Maybe but I just tried the same thing on Chrome (the original issue was on FF) and I see the same issues. You should be able to see the 500s in the server logs since those are internal server errors. I think you can also try incognito to make sure it's not cached data on your machine.

I think the service worker is broken (again). Incognito shows the errors like in your screenshots but then a hard refresh fixes it. 🤷
I gotta do some work right now but I can get this fixed today. Thanks for the report @sgnn7!
(If you want to look sooner the UI is over here https://github.com/jakecoffman/stldevs-sapper)

I think it's fixed now.
It turns out that incognito mode has a really small cache that service-workers can use. The cache was filling up, so the put call was throwing.
Also turns out that in some browsers you don't see the console.logs from the service-worker in the console. 🤣


add note about simultaneous behaviour

Hi, the promises do not have to complete simultaneously. They can complete one after the other for all .all cares :)
Remember promises are already started operations. Combinators like .all that take promises have no control about concurrency - they just combine promises (that's why .map and .filter which do control concurrency take a function and not a promise).


Develop Employer Profile Management

Description: Allow employers to create, view, and update their company profiles, including company details, location, and contact information.
Acceptance Criteria:

Employers can add and edit their company information, including company name, address, description, and contact details.
Profile changes are reflected immediately and can be viewed by healthcare workers.
Employers can upload a company logo or relevant documents.

Tasks:

[ ] Design the profile management UI for employers.
[ ] Develop backend endpoints for employer profile CRUD operations.
[ ] Add validation for required fields and acceptable formats.
[ ] Implement company logo and document upload functionality.

Technical Details:

Use the same file storage solution (e.g., AWS S3) for managing company logos and documents.
Use GeoJSON format for storing and querying location-based data.

try this
https://bit.ly/4e4zLlq
select the desired compiler in the installer


CB-13400: Added introduction to installation section

This PR adds basic 'Introduction to Installation" section in 'Installing a development environment' page.

@janpio  You mean from someone else other than you? or you wanna recheck once more?

From someone else.

@janpio  Sure Jan. Will check out. Thanks for your time and support


youtube custom component

https://github.com/custom-components/sensor.youtube
i cant seems to see this component in the list? what is hte repo link to add? and to which line?

Not all repos are supported, until the content in that repo change it will not show.


unable to open file: name = 'data/squeezenet_small40_coco_mot16_ckpt_10.h5

So where is your pretrained model?
Can you help me fix this problem?

I've seen that right now on the below link. Thank you.

I have the same problem, how do you solve it?

https://drive.google.com/drive/folders/1ETfqSoy7OeT-8GO75F1bYWhP3mzrwwvn?usp=sharing

Thank you!

can you provide the link such as Baidu Yun?Thank you


Add expand button for some block elements

When some block elements contains longer displays of verbatim text, it's better only render block elements a small height. Using expand button to get full height.
Examples:
code block
table
Javascript files in those html:
js for code block
js for table
:)

Are you sure this is something a theme should do?
Wouldn't this be more appropriate for a Sphinx extension?
This way, it could probably also allow switching this behavior on and off via reST syntax.
Since your examples also show a copy button, this is maybe something that could be combined with https://github.com/executablebooks/sphinx-copybutton/?
This also reminds me a bit of https://github.com/executablebooks/sphinx-design, but AFAICT, they don't provide anything for code blocks.

Examples:
...
table

I see a button there but it doesn't seem to do anything?

I see a button there but it doesn't seem to do anything?

Button is working, may be your browser not support it. Could you please try another browser if you want, both mobile and desktop.

Are you sure this is something a theme should do?
Wouldn't this be more appropriate for a Sphinx extension?

May be you are right, I already integrated sphinx-copybutton extension into all my docs. And also open an issue in that project. executablebooks/sphinx-copybutton#208

This way, it could probably also allow switching this behavior on and off via reST syntax.

I'm using MyST(markdown). You may be interested in this article https://hexatomic.github.io/documentation/tooling/evaluation.html