invitations: Add a new setting Who can create multiuse invite link.

This PR adds a new realm level setting Who can create multiuse invite link based on the group permissions
model.
Relevant discussions

Regarding refactor of code to flush cache
Discussion for adding realm level group setting

Fixes: #15159

Screenshots and screen captures:
New organization settings panel

Self-review checklist

[ ] Self-reviewed the changes for clarity and maintainability
(variable names, code reuse, readability, etc.).

Communicate decisions, questions, and potential concerns.

[x] Explains differences from previous plans (e.g., issue description).
[x] Highlights technical choices and bugs encountered.
[x] Calls out remaining decisions and concerns.
[x] Automated tests verify logic where appropriate.

Individual commits are ready for review (see commit discipline).

[x] Each commit is a coherent idea.
[x] Commit message(s) explain reasoning and motivation for changes.

Completed manual review and testing of the following:

[x] Visual appearance of the changes.
[x] Responsiveness and internationalization.
[x] Strings and tooltips.
[x] End-to-end functionality of buttons, interactions and flows.
[x] Corner cases, error conditions, and easily imagined bugs.

@zulipbot add "buddy review"

@HemantUmre12 please review this PR.

@HemantUmre12 please have a look to this PR. I have done the following changes since last review :

Addressed all the comments.
Changed the default group to Moderators from Administrators user_group.
Changes in the migration setting value of create_multiuse_invite_group to preserve the existing permissions as mentioned in issue description.

@HemantUmre12 I have updated the PR and addressed all your comments.
Regarding using $(".invite-user-link").hide(); for live-updates I don't think it is better than the current approach because:

$(".invite-user-link").hide(); works only when all the instances are rendered. So there can be some cases when only some instances are rendered and can lead to bugs.
We will have to deal with gear_menu separately otherwise we will get the following UI

Regarding live-updating invite users menu,I think its a rare situation, So I am not sure whether we want this because we are not doing such minor updates in some other places too. So its better to not do this till someone else reviews the PR.

@sahil839 I have updated the PR and addressed your comments. So, you can also review backend part now.

@sahil839 I have updated the PR as per your comments. Please have a look.

@Ujjawal3 let me know when you've gotten the feedback above resolved -- I think this is not too far from being mergeable once the above comments are resolved.

@timabbott I have addressed all the feedback. You can take a look now.

We might want to rework this to remove the _id suffix as proposed in #26243 -- I guess let's try to prioritize finishing that to confirm that theory, since if so, we'll save some change management if we merge this without the _id suffix in the API.

@Ujjawal3 I think you should update this since #26372 is merged now. Would good to get this merged as soon as Tim gets time to review this, since it will unblock a couple of other PRs as well. Feel free to ask any doubts to update this on CZO.

@Ujjawal3 - Also ping me when it's updated and ready for an API documentation review.

I have updated the PR with the following major changes:-

Updated the API design to use the one used in #26243.
Updated the code to  use new dropdown list widget.
Added commits to allow non-admins to revoke multiuse invites created by them.
Also, I have added some comments at places where I think something can be done better.
@laurynmm this PR is ready for API documentation review.

@Ujjawal3 - Thanks for pinging me for an API docs review and all the work you've done on this!
I had a few comments about the API documentation and I also looked at the help center documentation while I was at it.
Some general questions I have after reading through the documentation, but not the full code changes:

Shouldn't there also be an changelog entry for the POST /invites/multiuse endpoint since non-admin users can now potentially use that endpoint?
I think we should land on a term to consistantly user for these links in both the API and help center documentation. I like "reusable invitation link", which is currently used in the help center docs. Also, this could be used in the UI for the organization setting panel, which could be good because it clarifies to the admin updating that setting that these aren't one-time use links.
Question: could a user now have the ability to create a reusable invitation link, but not invite users via email? If so, we should clarify that in the help center documentation.
Also, are there limitations for these reusable invitation links if I'm not an owner/admin? For example, I imagine that as a normal member that I wouldn't be able to invite someone to be an admin or moderator, correct? If so, that also should be clarified in the help center documentation updates.

Let me know if you have any questions about the points above or other comments in my review. Thanks!

@laurynmm thanks for the review. I have done the suggested changes.
Regarding the questions you asked

Yeah, I missed the entry for POST /invites/multiuse endpoint earlier. I have added it now.
Yes, now there are separate settings for both invitations method. So, it may be possible that a user can only create invite links or vice versa. I think the current help documentation clarifies it.
Yes, there are limitations on the role which can be invited by a user.  Invitation for owners role can be only created by organisation owners and invitations for admins and moderators role can be only created  by administrators. We do have these same restrictions for inviting as through emails also. I do not think it is documented now for either method. I am not sure about the right place to document this for both methods.

@sahil839 I have addressed your comments also.

I have documented the changes in events and have fixed the inconsistency in UI.

The last push was just for bumping feature level entry which I missed earlier. I have done the documentation changes.

@alya I have resolved the merge conflicts.

Thanks for all the work on this @Ujjawal3! I made a couple small changes to defaults, noted above, and pushed that version back here; the remaining comments I believe are all reasonable things to do as follow-ups:

Most timely is https://github.com/zulip/zulip/issues/26652, which is a definitely bug in this logic that I expect nobody but us to notice, but we should fix while it's fresh.
Discuss in #backend and then propose a better place to put the basic data about system groups (name, etc.): https://github.com/zulip/zulip/pull/25884/files#r1218280325
Discuss in #frontend how to resolve https://github.com/zulip/zulip/pull/25884/files#r1317890034.
Discuss in #frontend how to resolve https://github.com/zulip/zulip/pull/25884#discussion_r1294681898.
Should access_user_group_for_setting accept a permission_configuration object rather than being passed a bunch of boolean values from that object? @sahil839 thoughts, but this seems to me like it might be a cleaner API.
This is probably an "api design" conversation, but @sahil839 would it make sense to migrate web/src/group_permission_settings.ts to be something sent over the API by the server? The values there feel like things that end up being duplicated in the server and client code, and it seems like if the configuration were something that didn't need to be hardcoded on the client, that might be very handy. I think the main counter-argument is that we're not yet sure what set of properties we'll end up with long term... but I think we have enough of these now that it's worth thinking a bit as a group about what shape such an API might want to take.

@Ujjawal3 I know GSoC is ending; do you think you'll have time to take care of those follow-ups? If not, I expect @sahil839 can take over responsibility for them.

For can_invite_others_to_realm, I didn't like the name can_send_email_invite_to_others and changed it to user_can_invite_users_by_email, diff below. I think we may want to do a small follow-up to do the API change to rename the reference to can_invite_others_to_realm that's in the API; probably worth an "api design" discussion as I think it's possible a reasonable alternative would be to cut the field entirely; I'm not sure the web app is using it, nor are the mobile apps.
diff --git a/web/src/admin.js b/web/src/admin.js
index 6cd1ea455a..a76ac4d0fe 100644
--- a/web/src/admin.js
+++ b/web/src/admin.js
@@ -160,7 +160,7 @@ export function build_page() {
         email_address_visibility_values: settings_config.email_address_visibility_values,
         waiting_period_threshold_dropdown_values:
             settings_config.waiting_period_threshold_dropdown_values,
-        can_send_email_invite_to_others: settings_data.user_can_send_email_invite_to_others(),
+        can_invite_users_by_email: settings_data.user_can_invite_users_by_email(),
         realm_invite_required: page_params.realm_invite_required,
         can_edit_user_groups: settings_data.user_can_edit_user_groups(),
         policy_values: settings_config.common_policy_values,
diff --git a/web/src/gear_menu.ts b/web/src/gear_menu.ts
index d28da78eaa..eb00adf2ee 100644
--- a/web/src/gear_menu.ts
+++ b/web/src/gear_menu.ts
@@ -126,7 +126,7 @@ export function initialize(): void {
         server_needs_upgrade: page_params.server_needs_upgrade,
         version_display_string: version_display_string(),
         apps_page_url: page_params.apps_page_url,
-        can_send_email_invite_to_others: settings_data.user_can_send_email_invite_to_others(),
+        can_invite_users_by_email: settings_data.user_can_invite_users_by_email(),
         corporate_enabled: page_params.corporate_enabled,
         is_guest: page_params.is_guest,
         login_link: page_params.development_environment ? "/devlogin/" : "/login/",
diff --git a/web/src/settings_data.ts b/web/src/settings_data.ts
index 6c2a7a8fa9..84de43f863 100644
--- a/web/src/settings_data.ts
+++ b/web/src/settings_data.ts
@@ -131,7 +131,7 @@ function user_has_permission(policy_value: number): boolean {
     return user_join_days >= page_params.realm_waiting_period_threshold;
 }

-export function user_can_send_email_invite_to_others(): boolean {
+export function user_can_invite_users_by_email(): boolean {
     if (
         page_params.realm_invite_to_realm_policy ===
         settings_config.email_invite_to_realm_policy_values.nobody.code
diff --git a/web/src/settings_invites.js b/web/src/settings_invites.js
index a3fcee9402..95bf102420 100644
--- a/web/src/settings_invites.js
+++ b/web/src/settings_invites.js
@@ -243,7 +243,7 @@ export function on_load_success(invites_data, initialize_event_handlers) {
 }

 export function update_invite_users_setting_tip() {
-    if (settings_data.user_can_send_email_invite_to_others() && !page_params.is_admin) {
+    if (settings_data.user_can_invite_users_by_email() && !page_params.is_admin) {
         $(".invite-user-settings-tip").hide();
         return;
     }
@@ -296,7 +296,7 @@ export function update_invite_users_setting_tip() {

 export function update_invite_user_panel() {
     update_invite_users_setting_tip();
-    if (!settings_data.user_can_send_email_invite_to_others()) {
+    if (!settings_data.user_can_invite_users_by_email()) {
         $("#admin-invites-list .invite-user-link").hide();
     } else {
         $("#admin-invites-list .invite-user-link").show();
diff --git a/web/src/ui_init.js b/web/src/ui_init.js
index 1bdc44c5af..99e27c009b 100644
--- a/web/src/ui_init.js
+++ b/web/src/ui_init.js
@@ -190,7 +190,7 @@ function initialize_left_sidebar() {
 }

 export function update_invite_user_option() {
-    if (!settings_data.user_can_send_email_invite_to_others()) {
+    if (!settings_data.user_can_invite_users_by_email()) {
         $("#right-sidebar .invite-user-link").hide();
     } else {
         $("#right-sidebar .invite-user-link").show();
diff --git a/web/templates/gear_menu.hbs b/web/templates/gear_menu.hbs
index df6a45bb16..64d51fcbce 100644
--- a/web/templates/gear_menu.hbs
+++ b/web/templates/gear_menu.hbs
@@ -155,7 +155,7 @@

             {{/if}}

-            {{#if can_send_email_invite_to_others}}
+            {{#if can_invite_users_by_email}}

                      {{t 'Invite users' }}
diff --git a/web/tests/settings_data.test.js b/web/tests/settings_data.test.js
index 469815b89d..5290f43129 100644
--- a/web/tests/settings_data.test.js
+++ b/web/tests/settings_data.test.js
@@ -158,7 +158,7 @@ test_policy(
 test_policy(
     "user_can_invite_others_to_realm",
     "realm_invite_to_realm_policy",
-    settings_data.user_can_send_email_invite_to_others,
+    settings_data.user_can_invite_users_by_email,
 );
 test_policy(
     "user_can_move_messages_between_streams",
@@ -269,7 +269,7 @@ run_test("user_can_invite_others_to_realm_nobody_case", () => {
     page_params.is_guest = false;
     page_params.realm_invite_to_realm_policy =
         settings_config.email_invite_to_realm_policy_values.nobody.code;
-    assert.equal(settings_data.user_can_send_email_invite_to_others(), false);
+    assert.equal(settings_data.user_can_invite_users_by_email(), false);
 });

 run_test("user_can_create_web_public_streams", () => {
diff --git a/zerver/lib/events.py b/zerver/lib/events.py
index 53291d7531..54a0a7eee7 100644
--- a/zerver/lib/events.py
+++ b/zerver/lib/events.py
@@ -492,7 +492,7 @@ def fetch_initial_state_data(
         )
         state["can_create_web_public_streams"] = settings_user.can_create_web_public_streams()
         state["can_subscribe_other_users"] = settings_user.can_subscribe_other_users()
-        state["can_invite_others_to_realm"] = settings_user.can_send_email_invite_to_others()
+        state["can_invite_others_to_realm"] = settings_user.can_invite_users_by_email()
         state["is_admin"] = settings_user.is_realm_admin
         state["is_owner"] = settings_user.is_realm_owner
         state["is_moderator"] = settings_user.is_moderator
@@ -894,7 +894,7 @@ def apply_event(
                     state["can_subscribe_other_users"] = user_profile.can_subscribe_other_users()
                     state[
                         "can_invite_others_to_realm"
-                    ] = user_profile.can_send_email_invite_to_others()
+                    ] = user_profile.can_invite_users_by_email()

                     if state["is_guest"]:
                         state["realm_default_streams"] = []
diff --git a/zerver/models.py b/zerver/models.py
index 3b44ddb838..e356d2c695 100644
--- a/zerver/models.py
+++ b/zerver/models.py
@@ -2177,7 +2177,7 @@ class UserProfile(AbstractBaseUser, PermissionsMixin, UserBaseSettings):  # type
     def can_subscribe_other_users(self) -> bool:
         return self.has_permission("invite_to_stream_policy")

-    def can_send_email_invite_to_others(self) -> bool:
+    def can_invite_users_by_email(self) -> bool:
         return self.has_permission("invite_to_realm_policy")

     def can_create_multiuse_invite_to_realm(self) -> bool:
diff --git a/zerver/tests/test_invite.py b/zerver/tests/test_invite.py
index ed4b929364..e5f41de230 100644
--- a/zerver/tests/test_invite.py
+++ b/zerver/tests/test_invite.py
@@ -801,7 +801,7 @@ class InviteUserTest(InviteUserBase):
     def test_can_invite_others_to_realm(self) -> None:
         def validation_func(user_profile: UserProfile) -> bool:
             user_profile.refresh_from_db()
-            return user_profile.can_send_email_invite_to_others()
+            return user_profile.can_invite_users_by_email()

         realm = get_realm("zulip")
         do_set_realm_property(
diff --git a/zerver/views/invite.py b/zerver/views/invite.py
index 8b032a551c..ae4a7d30de 100644
--- a/zerver/views/invite.py
+++ b/zerver/views/invite.py
@@ -59,7 +59,7 @@ def invite_users_backend(
     ),
     stream_ids: List[int] = REQ(json_validator=check_list(check_int)),
 ) -> HttpResponse:
-    if not user_profile.can_send_email_invite_to_others():
+    if not user_profile.can_invite_users_by_email():
         # Guest users case will not be handled here as it will
         # be handled by the decorator above.
         raise JsonableError(_("Insufficient permission"))

So I was more or less ready to merge this, but I noticed that we currently allow "guests" as an option for this new setting, which we don't allow for the similar "who can do an invite link" setting, so probably is a bad idea to support.
I'm going to try adding an allow_everyone_group property to address this as a new final commit.

OK, added a commit to that effect; @sahil839 I'd greatly appreciate your doing a review on that and any follow-ups; I'm pretty sure that it probably makes some of the zulip.yaml notes about which values are allowed slightly inaccurate; that's probably OK to fix in a follow-up so that we can get this integrated and build additional things on top of it.
I'm now pretty convinced that we want to be passing the permissions_config object around.

I can work on the follow-ups after 15. I have exams next week so currently busy preparing for it.

Thanks for all the work on this @Ujjawal3! I made a couple small changes to defaults, noted above, and pushed that version back here; the remaining comments I believe are all reasonable things to do as follow-ups:

Most timely is Fix live update when an administrator revokes an invitation created by another user #26652, which is a definitely bug in this logic that I expect nobody but us to notice, but we should fix while it's fresh.
Discuss in #backend and then propose a better place to put the basic data about system groups (name, etc.): https://github.com/zulip/zulip/pull/25884/files#r1218280325
Discuss in #frontend how to resolve https://github.com/zulip/zulip/pull/25884/files#r1317890034.
Discuss in #frontend how to resolve invitations: Add a new setting Who can create multiuse invite link. #25884 (comment).
Should access_user_group_for_setting accept a permission_configuration object rather than being passed a bunch of boolean values from that object? @sahil839 thoughts, but this seems to me like it might be a cleaner API.
This is probably an "api design" conversation, but @sahil839 would it make sense to migrate web/src/group_permission_settings.ts to be something sent over the API by the server? The values there feel like things that end up being duplicated in the server and client code, and it seems like if the configuration were something that didn't need to be hardcoded on the client, that might be very handy. I think the main counter-argument is that we're not yet sure what set of properties we'll end up with long term... but I think we have enough of these now that it's worth thinking a bit as a group about what shape such an API might want to take.

@Ujjawal3 I know GSoC is ending; do you think you'll have time to take care of those follow-ups? If not, I expect @sahil839 can take over responsibility for them.

I can work on follow-ups after 15. I have exams from next week so currently busy in preparing for it.

I had a look at the commit for adding allow_everyone_group and it looks good. I can do the required API docs update if there are any and push to this PR, but just wanted to confirm whether we want to fix the variable in notify_invites_changed as discussed here now itself since the PR was not merged due to lint issues.

And another question, whether we would sent different objects for realm-level, stream-level and group-level settings or just a single object with all settings

Probably the right idea is 3 objects with the same type. Not sure about naming.
I think group_permission_settings.ts can still be there to extend the server data if we feel the need to do that. But my main concern is having the pretty long list of settings get out of sync with each other.
In any case, this is now merged after @sahil839 fixed the little CI issues and https://github.com/zulip/zulip/pull/25884#discussion_r1318884468; huge thanks for all the work getting us here @Ujjawal3! It's gonna be like 5x easier to do future realm settings with a group type now that we've done this groundwork.

Thanks for all the work on this @Ujjawal3! I made a couple small changes to defaults, noted above, and pushed that version back here; the remaining comments I believe are all reasonable things to do as follow-ups:

Most timely is Fix live update when an administrator revokes an invitation created by another user #26652, which is a definitely bug in this logic that I expect nobody but us to notice, but we should fix while it's fresh.
Discuss in #backend and then propose a better place to put the basic data about system groups (name, etc.): https://github.com/zulip/zulip/pull/25884/files#r1218280325
Discuss in #frontend how to resolve https://github.com/zulip/zulip/pull/25884/files#r1317890034.
Discuss in #frontend how to resolve invitations: Add a new setting Who can create multiuse invite link. #25884 (comment).
Should access_user_group_for_setting accept a permission_configuration object rather than being passed a bunch of boolean values from that object? @sahil839 thoughts, but this seems to me like it might be a cleaner API.
This is probably an "api design" conversation, but @sahil839 would it make sense to migrate web/src/group_permission_settings.ts to be something sent over the API by the server? The values there feel like things that end up being duplicated in the server and client code, and it seems like if the configuration were something that didn't need to be hardcoded on the client, that might be very handy. I think the main counter-argument is that we're not yet sure what set of properties we'll end up with long term... but I think we have enough of these now that it's worth thinking a bit as a group about what shape such an API might want to take.

@Ujjawal3 I know GSoC is ending; do you think you'll have time to take care of those follow-ups? If not, I expect @sahil839 can take over responsibility for them.

@sahil839 can you work on these follow-ups? Reading the work it looks like it will take a while to do them Tim has asked me to resolve the merge conflicts in #24580 and it has some significant merge conflicts, so currently it would not be possible for me to work on this.

Ok, I can work on these as required for my further work on #10970 and then handle the remaining if any after that.


MUMUP-2361 ; Render on web

Added common function for marketplace to get the launchURL
Added launch url to marketplace and search
Added exclusive launch to widgets
cleaned up exclusive launch on compact
Added in mock interface to /web/exclusive/feedback
Added in mock entries.json that include layoutObj in the entry object

:+1: . I like this a lot. It's both the functional improvement that's going to allow incrementally rendering more portlets more better, and the code refactor that makes this easier to maintain.
I'm a little confused about the relationship of the renderURL(..) and getLaunchURL(..) methods. Opportunity to further refactor those into a single method, maybe up a level at the Service layer rather than in Controllers?

Thanks for the feedback @apetro . It is a bit odd, but the layout json object is different than the marketplace entry. Different variables even. So getLaunchURL(portlet) is for the layout page (used on /web/compact and /web/expanded) and renderURL(marketplaceEntry) is used by the marketplace/search pages.
I'd love to someday have those objects be the same, but out of scope for this pr. That would be a big undertaking.


fix: composer update might cause error "Failed to open directory"

Fixes #6832

Description
Exit the function recursiveDelete() if the folder to delete didn't exist.
Fixes #6832
Checklist:

[x] Securely signed commits
[?] Component(s) with PHPDoc blocks, only if necessary or adds value
[?] Unit testing, with >80% coverage
[?] User guide updated
[?] Conforms to style guide

Wouldn't it be better to leave it as an exception since this is an exceptional situation?

It looks like recursiveMirror() will fail if the directory isn't there (not 100% sure on that). If that's the case I'd be in favor of exiting early here, like @kenjis suggests.

Wouldn't it be better to leave it as an exception since this is an exceptional situation?

It looks like recursiveMirror() will fail if the directory isn't there (not 100% sure on that). If that's the case I'd be in favor of exiting early here, like @kenjis suggests.

Hello @kenjis and @MGatner ,
If the recursiveDelete fails with the exception, the recursiveMirror is not executed and the composer update is not finalized.
It's better to not throw an Exception, to let the recursiveMirror do the job and correctly finish the update.

I would agree with @LeMyst, here. The proposed change does not alter the behaviour of the method, but rather provides an early exit to skip the unnecessary generation of Iterator objects if the folder does not exist.

@LeMyst Please don't use git merge.
See https://github.com/codeigniter4/CodeIgniter4/blob/develop/contributing/workflow.md#updating-your-branch

@LeMyst Please don't use git merge.
See https://github.com/codeigniter4/CodeIgniter4/blob/develop/contributing/workflow.md#updating-your-branch

I saw that after my action. I will clean my branch tomorrow.

Yes, if the script is terminated by some reasons right after recursiveDelete() execution,
system/ThirdParty/ does not exist when the next execution of composer update.

@LeMyst Please don't use git merge. See https://github.com/codeigniter4/CodeIgniter4/blob/develop/contributing/workflow.md#updating-your-branch

It's cleaned

How about this?
@@ -126,7 +128,11 @@ final class ComposerScripts
             exit(1);
         }

-        @mkdir($targetDir, 0755, true);
+        if (! @mkdir($targetDir, 0755, true)) {
+            echo sprintf('Cannot create the target directory: "%s"' . PHP_EOL, $targetDir);
+
+            exit(1);
+        }

         $dirLen = strlen($originDir);

How about this?
@@ -126,7 +128,11 @@ final class ComposerScripts
             exit(1);
         }

-        @mkdir($targetDir, 0755, true);
+        if (! @mkdir($targetDir, 0755, true)) {
+            echo sprintf('Cannot create the target directory: "%s"' . PHP_EOL, $targetDir);
+
+            exit(1);
+        }

         $dirLen = strlen($originDir);

Does I need to put this change (who's good for me) into this PR?

I tried to delete ThirdParty and touch a file named ThirdParty, and the function fails because of the trailing '/'.

Without the above code, composer update still raises an error in that case.

It's added to the PR, but that raise a question about consistency for the PHP_EOL. Inside or outside the sprintf()?

Thank you. And good point.
Outside the sprintf() is easier to read?

I would add that to the format string, because it's supposed to be part of the message.

Another question I've, it's the difference between composer update and composer install
If I do a composer update, the hook post-update-cmd is used and the ThirdParty dependencies are updated.
But if I do a composer install, if I use the composer.lock on my production line, the ThirdParty folder is not updated.
I think a hook post-install-cmd must be added.

I think a hook post-install-cmd must be added.

No. The third party libraries are updated only when you run composer update.
composer install does not update them. So the hook is not needed.

I think a hook post-install-cmd must be added.

No. The third party libraries are updated only when you run composer update. composer install does not update them. So the hook is not needed.

It seems there is different behavior:

If there is no composer.lock, the composer install run the ComposerScripts::postUpdate
if you use the composer update, the ComposerScripts::postUpdate is ran too
but if you use composer install with a composer.lock, the ComposerScripts::postUpdate is not ran and the libraries are not copied/updated in the ThirdParty folder.

You have more informations about this here: https://getcomposer.org/doc/articles/scripts.md#command-events
post-install-cmd: occurs after the install command has been executed with a lock file present.
post-update-cmd: occurs after the update command has been executed, or after the install command has been executed without a lock file present.

So I think a hook on post-install-cmd is necessary to copy the ThirdParty libraries.

So I think a hook on post-install-cmd is necessary to copy the ThirdParty libraries.

Why?
There is already latest Third party source code in the ThirdParty folder.

So I think a hook on post-install-cmd is necessary to copy the ThirdParty libraries.

Why? There is already latest Third party source code in the ThirdParty folder.

If you add dependencies to your composer.json/composer.local.json and you push the composer.lock to your version control. When you update the vendor folder with composer install on your deployment server (production, preproduction, ...), the folder system/ThirdParty will not be updated.

Correct me if I'm wrong but... if we're using Composer then we don't even need to update ThirdParty because the Composer sources will be used.

To be honest, I think if you are using manual install then you don't need ComposerScripts and the post update hook altogether. It's kinda weird you download the zip manually then use Composer to update. I mean, why not use composer initially?

Correct me if I'm wrong but... if we're using Composer then we don't even need to update ThirdParty because the Composer sources will be used.

I don't understand why this is in place, I did not test to remove the ThirdParty folder when you have an up-to-date vendor folder.

To be honest, I think if you are using manual install then you don't need ComposerScripts and the post update hook altogether. It's kinda weird you download the zip manually then use Composer to update. I mean, why not use composer initially?

I am probably not the best example. I build my project around CodeIgniter. I download the zip file and start my project from this, adding (or not) my dependencies to the composer.local.json, etc.
I never really used the AppStarter, so I'm between the two worlds (zip and composer), I don't think I'm a rare case.

@LeMyst Sorry, if you downloaded the Zip file from this codeigniter4/CodeIgniter4 repository, it was because the official site download link was wrong in the past. Correct zip file is one from codeigniter4/framework like https://api.github.com/repos/codeigniter4/framework/zipball/v4.2.10
If you use Zip installation, you need to replace system folder manually. And you don't need to install the third party packages via Composer. See https://codeigniter4.github.io/CodeIgniter4/installation/installing_manual.html#installing-manual-upgrading
But If you installed the package with Composer, the Composer package will be autoloaded by CI4's autoloader. ThirdParty/ source code is not used.
If you use Composer, we recommend you don't use Zip installation.
I recommend you move to Adding CodeIgniter4 to an Existing Project. Then you can update system folder with composer update. Your composer.json file will be similar to appstar's: https://github.com/codeigniter4/appstarter/blob/master/composer.json that does not have post-update-cmd.
The ComposerScripts.php is for framework maintainers, not for end users.

@LeMyst Sorry, if you downloaded the Zip file from this codeigniter4/CodeIgniter4 repository, it was because the official site download link was wrong in the past. Correct zip file is one from codeigniter4/framework like https://api.github.com/repos/codeigniter4/framework/zipball/v4.2.10
If you use Zip installation, you need to replace system folder manually. And you don't need to install the third party packages via Composer. See https://codeigniter4.github.io/CodeIgniter4/installation/installing_manual.html#installing-manual-upgrading
But If you installed the package with Composer, the Composer package will be autoloaded by CI4's autoloader. ThirdParty/ source code is not used.
If you use Composer, we recommend you don't use Zip installation.
I recommend you move to Adding CodeIgniter4 to an Existing Project. Then you can update system folder with composer update. Your composer.json file will be similar to appstar's: https://github.com/codeigniter4/appstarter/blob/master/composer.json that does not have post-update-cmd.
The ComposerScripts.php is for framework maintainers, not for end users.

OK, I will do this next time.
Maybe remove the composer.json from the framework release if it's not intended to be used.
Otherwise, I think we can close this PR if the issue #6832 is solved?

Maybe remove the composer.json from the framework release if it's not intended to be used.

If devs want to write PHPUnit tests, they need composer.json to install PHPUnit.
After all many devs need  composer.json.
We actually recommend Composer installation.
@codeigniter4/core-team
But it seems we do not need the following in codeigniter4/framework composer.json:
        "post-update-cmd": [
            "CodeIgniter\\ComposerScripts::postUpdate"
        ],


Eliminate brew tap flutter/flutter instruction

The flutter tap was deleted as part of the resolution to #7783.

@chinmaygarde


Simplify Clone by removing redundant guards

These extra guards only complicate the code where it is not needed anyway. The Drop function checks the number of items in a table before dropping elements (see below), so that dropping the uninitialize table as well as table with no actual data (but with FULL control bytes) is safe . Added tests to check that the current behavior of Drop won't change in the future.
impl<T, A: Allocator + Clone> Drop for RawTable<T, A> {
    fn drop(&mut self) {
        if !self.table.is_empty_singleton() {
            unsafe {
                self.drop_elements();
                self.free_buckets();
            }
        }
    }
}

impl<T, A: Allocator + Clone> RawTable<T, A> {
    unsafe fn drop_elements(&mut self) {
        if Self::DATA_NEEDS_DROP && !self.is_empty() {
            for item in self.iter() {
                item.drop();
            }
        }
    }
}

By the way, the old implementation with ManuallyDrop seems to be leaking the allocator.  I'll add a test later

@bors r+

:hourglass: Testing commit 50a9e7be08e24944f77d051e38bfc5847e62aa7c with merge bb6521e2cbf218b7d3070b58ced30907d248d376...

:sunny: Test successful - checks-actions
Approved by: Amanieu
Pushing bb6521e2cbf218b7d3070b58ced30907d248d376 to master...


cBioPortal hg19 to hg38 liftOver

We should always be lifting over information from the old human genome build (hg19) to hg38; i.e. coordinates, gene symbols, etc. Make sure to check the matrices we're using the proper aliases from the latest human genome build.

The lift-overs were updated in v0.9.28-0.9.32.


Simplify time zones?

Current time zone implementation is quite fragile: we need to take care of it every time we show a date/time to the user and/or we read/save it to the database.
What about getting rid of them?
Here's what I have in my mind:

we store the system default time zone to a new configuration option (eg timezone.system), just in case someone needs it (very unlikely with this new approach)

at boot time we read the timezone.default configuration option (it may be set via dashboard). If it's not set, we set it to timezone.system, and we set the PHP default timezone (date_default_timezone_get) to timezone.default.

if the user time zones are enabled, and if there's a logged in user, and if she/he has a custom timezone, we set the  timezone.user to it (and call date_default_timezone_get), otherwise we set timezone.user to timezone.default

we set the database connection timezone to timezone.user in a new connect method of our Concrete\Core\Database\Connection\Connection:
public function connect()
{
    $justEstablished = parent::connect();

    if ($justEstablished) {
        $this->updateTimezone();
    }

    return $justEstablished;
}

public function updateTimezone()
{
    $app = \Concrete\Core\Support\Facade\Application::getFacadeApplication();
    $config = $app->make('config');
    $timezoneName = $config->get('timezone.user');
    if ($timezoneName) {
        try {
            $this->executeQuery('SET time_zone = ?', [$timezoneName]);
        } catch (\PDOException $x) {
            // This may occur if the time zone information tables in the mysql database
            // have not been created and populated.
            // See http://dev.mysql.com/downloads/timezones.html
            $timezone = new \DateTimeZone($timezoneName);
            $delta = (int) ($timezone->getOffset(new \DateTime('now')) / 60);
            if ($delta < 0) {
                $delta = abs($delta);
                $sign = '-';
            } else {
                $sign = '+';
            }
            $hours = (int) $delta / 60;
            $minutes = (int) ($delta - $hours * 60);
            $offset = $sign.substr('0'.$hours, -2).':'.substr('0'.$minutes, -2);
            $this->executeQuery('SET time_zone = ?', [$offset]);
        }
    }
}

PRO
no more time zone mess, everything is always in the wanted timezone
CON
if MySQL is not setup correctly (ie it does not contain the time zone names), we may have problems with standard time <-> daylight saving time changes (we could warn about it in the /dashboard/system/basics/timezone page)

I'll admit it: time zones make my head spin, and I try to deal with them as little as possible. ;) You are definitely more of an expert of their flow in concrete5 and in localized, multi-time-zone sites than I. If this would simplify our time zone handling I'd be all for it in 8.1

I'd love to get other reactions from those who actually deal with time zones in their custom code.

Wouldn't that mean that we don't store UTC in the database? Whenever I had to deal with timezones we stored UTC.
I also wonder how this should work with existing add-ons. Wouldn't you have to convert the existing values in the database? Would you simply scan for all date columns and update them?
Maybe I just didn't understand what you're trying to do 😃

You're right, Remo.
In my own projects I always use TIMESTAMP instead of DATETIME fields, so that the stored date/time is automatically converted to UTC by using the current value of the time_zone setting of mysql, ie it's stored as an absolute date/time.
This is not the case of DATETIME fields, since they are stored as is, relative to the currently active time-zine, but saved without any details about the time-zone specific data.
 Here or in the opposite side on Earth?
BTW, I'm closing this issue: this approach is not valid for DATETIME fields...

Exactly, I'd love to get rid of DATETIME and I guess we could create an upgrade script that replaces all of them, no just in the known tables, but that feels very risky. I feel like the boat has sailed to do this nicely.

I really want to take out the "fix c5 timezones" item in my todolist list: it has been there for years and I only partly fixed it in the past...
The only solution I can see is this one:

we never change the PHP default time zone: it must be immutable, since the MySQL DATETIME fields don't have a time zone associated.
We only consider app/user configured timezones when interacting with the user (I mean, when we show date/times and when we get date/times from user input).

I think this is the only solution

unless we go down the bumpy road and migrate to TIMESTAMP this is probably the only way.

Naming is also a thing, e.g. this looks misleading to me:
<field name="timestamp" type="datetime"/>
https://github.com/concrete5/concrete5/blob/develop/concrete/config/db.xml#L933

Let's move the discussion to this new issue: https://github.com/concrete5/concrete5/issues/4740


Introducing LvCoordinator functionalities

Resolves #90

According to #120, the functionality of your implementation has to be moved to somewhere else. Please, let's talk about the details.

This PR is obsolete now, functionality will be implemented in #138. Please do not delete the branch yet though.


ginkgo: Reuse AnnotationNames from pkg/

Summary of changes:
Create new package annotation. This allows for the removal of duplicate
test constants from test helpers which were failing due to importing a
package which includes cgo code that requires BPF headers to be present.
Fixes: #2308

test-me-please

Hi @gnahckire
I'm super happy with the changes, but could you delete the merge commit please? and add sign-off the first commit (1ee25a0ab98389a66d3bad5fae05cd96c2b9c464)?
Regards  and many thanks for the help!

I'm super happy with the changes, but could you delete the merge commit please? and add sign-off the first commit (1ee25a0)?

We can squash the commits on merge but the signoff is needed, yes

We can squash the commits on merge but the signoff is needed, yes

Whoops, forgot about that! Let me know if there's anything else I missed.

test-me-please


Mixed Language Model Causing STT to fail

Replicated this on two installs. Whenever the mix ratio is above 0 on either pocketsphinx or kaldi then STT and therefore intent recognition fails. Retraining/restarting does not solve the issue. I notice that whilst the log shows no errors it feels like training is not successful as I don’t get the training duration note.  Recordings happening fine. Is this a known issue?

Please try upgrading to 2.5 and see if the issue persists. Mixed modeling hasn't been thoroughly tested on 2.4 in a while.


Animation effects will periodically reset

Animation effects will periodically reset

There must be a problem if there is a stall

Maybe you need custom animate in your APP with the state exported from  Support positions, colors, and animateCustom of particles


Issues with my custom frameProcessor: textRecognition Empty on iOS❓

Question
I successfully created my custom frameProcessor to perform TextRecognition.
The frameProcessor is correctly linked with React-Native.
But inside the Objective C implementation, the method to recognize text always return empty values, even if the camera is framing texts:
static inline id scanOCR(Frame* frame, NSArray* args) {
  MLKTextRecognizer *textRecognizer = [MLKTextRecognizer textRecognizer];
  MLKVisionImage *image = [[MLKVisionImage alloc] initWithBuffer:frame.buffer];
  image.orientation = frame.orientation;

  NSError *error;
  MLKText *result = [textRecognizer resultsInImage:image error:&error];
  if (error != nil || result == nil) {
    NSLog(@"%@", error); // <- This is NEVER called
  } else {
    NSLog(@"text: %@", result.text); // <- this is always empty
    NSLog(@"blocks lenght: %lu", (unsigned long)result.blocks.count); // <- this is always 0
  }
  return @{@"text": result.text};
}

All the code is correctly built and compiled. I have no error messages but I cannot recognize any texts.
What is happening?
What I tried
No response
VisionCamera Version
^2.12.0
Additional information

[ ] I am using Expo
[X] I have read the Troubleshooting Guide
[X] I agree to follow this project's Code of Conduct
[X] I searched for similar questions in the issues page as well as in the discussions page and found none.

Hi! This seems to be an issue with the MLKit Text Recognizer, not with VisionCamera.
Maybe MLKit does not support 10-bit HDR Frames yet, and your Camera is using 10-bit HDR Frame Format? Check out CameraDeviceFormat.pixelFormat, you want that to be 420f or 420v instead of x420.

@mrousavy that's a good suggestion, but I just tried with various formats and preset and text results is always empty. Yes it is related with MLKit, more than VisionCamera.

Hmm, that sucks, sorry I'd have to debug this myself. If the Frame appears to be correct, which you can verify by writing it to a file:
let imageBuffer = CMSampleBufferGetImageBuffer(sampleBuffer)!
let ciimage = CIImage(cvPixelBuffer: imageBuffer)

let context = CIContext(options: nil)
let cgImage = context.createCGImage(ciimage, from: ciimage.extent)!
let image = UIImage(cgImage: cgImage)

let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
let filePath = "\(paths[0])/MyImageName.png"
UIImagePNGRepresentation(image)?.writeToFile(filePath, atomically: true)

And if that looks correct, then it must be MLKit's fault.

Hi @mrousavy , I was able to solve the problem by updating the iOS version of my iPhone 8 from 13.6 to 15.3.
Do you know why that could happen?
Do you know if MLKIT compatible with older iOS versions?

Hi, I don't know.

hello @mrousavy  @digitalbore  I have the same error. I am using vision camera ocr and react-native-vision-camera. I upgraded the mlkit inside vision-camera-ocr from 2.2.0 to 3.2.0 and i am getting problem like everything builds ok it's just text is not being displayed.
2023-07-11 16:41:33.700470+0900 VisionCameraOcrExample[5211:1423971] [native] VisionCamera.invokeOnFrameProcessorPerformanceSuggestionAvailable(currentFps:suggestedFps:): Frame Processor Performance Suggestion available!


fix(home-manager/kvantum): don't uppercase accents and flavors in override

Fix for kvantum module, which uses an updated catppuccin-kvantum package that changed from uppercase enums to lowercase.
Closes #357

I was working on a PR with these same changes but found that it does not install the kvantum theme for me. Can you confirm that the issue is fixed and that the theme correctly installs for you?

I was working on a PR with these same changes but found that it does not install the kvantum theme for me. Can you confirm that the issue is fixed and that the theme correctly installs for you?

Oh yeah, theme didn't correctly install for me either.

Yep, works for me. Thanks!

This won't work since catppuccin/nix supports nixpkgs 24.05 still.

This should only apply now if the version is at least 24.11.

@isabelroses sorry for the @ but this PR has been updated and is ready for review.

@isabelroses sorry for the @ but this PR has been updated and is ready for review.

I can't merge but LGTM, better waiting for getchoo though.

I can't merge but LGTM, better waiting for getchoo though.

By the power vested in me, I now pronounce you maintainer of catppuccin/nix

Thanks for the fix :)


Fix version tagging in app-pack-generator and unity-app-generator

the release version and the version inside things like app-pack-gen and unity-app-package are conflicting.
for example, tagged as 0.4.0, but version is (still at) 0.2.2 https://github.com/unity-sds/app-pack-generator/blob/main/app_pack_generator/version.py#L1
version.py
__version__ = "0.2.2"

Fixed by Mike in 0.4.1


Dependency security issue

This npm package currently (as of v1.2.2) has some security issues within its dependencies, which originate from the bin-version-check-cli package. The last time this package has been updated was two years ago, which is why it uses outdated dependencies. I was trying to resolve the issue, but then I realized this package seems like an unused dependency within your project. Can you please confirm this assumption and if so remove the dependency or otherwise tell me how this package is used within your project?
PS: below is the output of npm audit

                       === npm audit security report ===

┌──────────────────────────────────────────────────────────────────────────────┐
│                                Manual Review                                 │
│            Some vulnerabilities require your attention to resolve            │
│                                                                              │
│         Visit https://go.npm.me/audit-guide for additional guidance          │
└──────────────────────────────────────────────────────────────────────────────┘
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low           │ Prototype Pollution                                          │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package       │ yargs-parser                                                 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in    │ >=13.1.2 <14.0.0 || >=15.0.1 <16.0.0 || >=18.1.2             │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ youtube-dl-exec                                              │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path          │ youtube-dl-exec > bin-version-check-cli > meow >             │
│               │ yargs-parser                                                 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info     │ https://npmjs.com/advisories/1500                            │
└───────────────┴──────────────────────────────────────────────────────────────┘
found 1 low severity vulnerability in 381 scanned packages
  1 vulnerability requires manual review. See the full report for details.

The dependency is needed because need to be sure python is available on the system.
Also, looks like the dependency has recent activity:
https://github.com/sindresorhus/bin-version-check-cli/commits/main
so consider open an issue there upgrading the dependencies!

You were right - The issue has been resolved, the new package with updated dependencies is already available on npm :tada:


(#521, #627) Fixes for split() and splitn()

#627: Corrects /-/.split("a-") to return ["a", ""] correctly instead of ["a"].
#521: Corrects /-/.splitn("a", 2) to return ["a"] correctly instead of ["a", ""].

Adds entries in CHANGELOG.md.

Note that a couple of existing tests (split2 and split3) were passing incorrectly before these changes.
I’m using /-/ as a short hand for Regex::new("-").unwrap(). It seems clear enough, but then I’ve written a lot of code in languages with regex literals.
This supersedes PR #606 which attempted to fix #521.
I disclaim ownership of these changes. They are owned by whoever owns the bulk of the rest of the code. (I am not a lawyer, but I’ll head them off at the pass if I can.)

The CI failure is only for Rust “stable.” It appears to be unrelated to the changes in this PR. https://travis-ci.com/rust-lang/regex/jobs/257680677

CI failure issue https://github.com/rust-lang/regex/issues/634


[5.1] Parser: avoid emitting disabled var diagnostics when building syntax tree

This is swift-5.1-branch only fix. The fix on master has been superseded by this pull request: https://github.com/apple/swift/pull/24594
rdar://52128292

@swift-ci please smoke test

@swift-ci please test


Remove examples dir issue #584

Completing Issue #584
Removed all the scripts in the examples directory as they were already in the cookbook documentation (almost identical).
Optional Changes that I can revert (revert to commit 09b6daa).
Moved the data in examples into the test/data directory as that was the only placed that is using it and is not referenced in the cookbook. Updated testing scripts and index.md to reflect this move.
Updated index.md to point to cookbook. Unsure if the documentation links are working.

Hi @DanTanAtAims
This is looking good, requesting a few minor changes.
Unrelated to the PR:

Please mention the issue ID in the description rather than the title
Use closing keywords in the description

e.g., instead of "Completing issue [issue number]", state "closing [issue number]"

Pinging @Rosejoycrocker in case this affects any recent/ongoing changes regarding the test data

@ConnectedSystems I've address the comments in the newest commit

I'm on the road shortly but wanted to check @DanTanAtAims you ran tests locally and it all passes?


Kailey Smith [DS-Unit-3-Sprint-2-SQL-and-Databases]

Sprint Challenge Code Review
Unit 3 Week 2 - SQL and Databases

Parts 1-3
Code review

What went well:

You completed everything correctly and efficiently

You commented your things

You did the things correctly and efficiently

What could be better:

Comments before the functions would be a little better inside the function definitions as '''docstrings'''. Generally, use # comments to explain parts of code and '''docstrings''' to explain what a function, method, or class does (with the exception that the main method doesn't really need a docstring--what you might think to put there could actually be a docstring at the top of the .py file)

You could make the whole .py file an executable script by doing something like the following:

import sqlite3
import pandas as pd

conn = sqlite3.connect('demo_data.sqlite3')
curs = conn.cursor()

def make_db():
    create_demo_table = """
    CREATE TABLE demo (
        s varchar(5),
        x int,
        y int
     );"""

     .... [all the stuff you have]
    conn.commit()

... [the queries you have]

if __name__ = "__main__":
    make_db()
    row_count()
    row_xy5()
    y_values()

Part 4 — Questions (and your Answers)
Code review

What went well:

well thought out answers

What could be better:

¯_(ツ)_/¯

Part 5 — Code Readability
Code review

What went well:

code is readable

well-name variables and functions

no pep8 violations

What could be better:

¯_(ツ)_/¯


Make sure to show scrollbar in the @ menu if needed

The model selector shows scrollbars if needed, but the @ mention menu doesn't, and I've witnessed multiple occasions where people didn't scroll down. This updates them to be consistent with each other, and the user's O/S.
Fixes https://linear.app/sourcegraph/issue/CODY-2150/-mention-menu-missing-scrollbar
Test plan

CI

Thanks @keegancsmith!


False-positive message "Avoid undefined variables" on static prop

PHPMD version: 2.8.1
PHP Version: any

Current Behavior
    protected static $cmsBlockBuffer = [];

        // inside a method
        if (isset(static::$cmsBlockBuffer[$cmsBlockKey])) {
            return static::$cmsBlockBuffer[$cmsBlockKey];
        }

Lot of false positive error noise

Avoid using undefined variables such as '$cmsBlockBuffer' which will lead to PHP notices.

Expected Behavior
No errors.

Thanks, we're tracking this bug in #714.


Finish #246: feat!: stop adding core committer label

I only had to remove two lines from a test.

Sure.


Complete concept descriptions

Complete empty introduction.md, about.md and links.json files.

[ ] basics
[ ] blocks
[ ] conditionals
[ ] evaluation
[ ] functions
[ ] none
[ ] script
[ ] strings

There's some work started on it:
https://github.com/loziniak/red-1/commit/638491ac7e7de6403d76d0fa9220bdb6ccaf9f55
Probably work on concepts should be moved to separate branch, because we don't want to release this track with empty concepts. We should remove all concepts from directory and config on branch main, as well as references to them from practice exercises' practices and prerequisites lists in track's config.json.


feat(openapi): expose openapi spec and swagger-ui

feat(macros): new proc-macros library

Added new mayastor proc macros library which will be used for any proc
macros that might be needed.
Added a new library actix_openapi_macros to provide compatibly
between actix v3 proc-macros and paperclip.
todo: now that we have a proc-macros library we should make use of it
and tidy up the message bus type declaration.

feat(openapi): generate openapi spec for rest

Generate openapi v2 spec on the rest server by making use of the
paperclip project and the mayastor_macros::actix compat library.
The spec is exposed on /v$/api/spec.
There is a paperclip bug that causes the description of Path id vars on
the uri to not be documented. A PR is currently outstanding for that.

feat(swagger_ui): expose swagger-ui on rest

Expose the swagger_ui on the rest server at /v$/swagger-ui
It uses the /v$/api/spec by default, though it may be able to point to
another spec.

bors merge

bors merge

bors merge

bors merge

bors merge

bors merge

bors merge

bors merge

bors merge

bors merge

bors retry

bors retry

bors merge

bors merge

bors merge

bors merge

bors merge

bors merge

bors merge

bors merge

bors merge

bors merge

bors merge

bors merge

bors merge

bors merge


Fleet runs apt even on Arch Linux

Describe the bug
Fleet runs the apt command to install clang and lld even on Arch Linux which is a non-Debian/Ubuntu based Linux distro. It's offical  package manager is called pacman. Also it is kinda bad practice to call sudo explicitly by a program.
To Reproduce
curl -L get.fleet.rs | sh

Expected behavior
I think fleet should ask the user to install clang and lld by themselves rather doing it by itself.
Desktop

OS: Arch Linux

Hi! I have it work with aur! (https://aur.archlinux.org/packages/fleet-rust)

That's awesome!

For Fedora Silverblue,
sudo rpm-ostree install lld clang

That's exactly what the problem is. Either you package it up for every single distribution or ask the user to explicitly install all the dependencies. I think the 2nd route is better as even the official rust-lang/rust repo also asks the users to install the required dependencies before installing rustup. This drops the hard coded usage of apt and sudo.

This issue has seemed to be fixed. If this issue re-occurs, or you’d like to open another issue, please create one! If you feel like it needs to be reopened, reach out to me over at our Discord Server (https://discord.gg/RsTeV6rpqJ).
Grinder (Community Manager)

Must be fixed s to #50 (comment)


Android Crashes with stepCount={1}

Also encountering this on both iOS and Android.
I have pages of varying lengths, and want to keep a visual consistency by always having the page count, even if there is only one page.
I believe this error is caused by
const animateToPosition = (this.state.progressBarSize/ (stepCount - 1)) * position;

in onCurrentPositionChanged
When stepCount is 1, then it is dividing by zero, which results in an invalid value for the progressBar width.
No progress bar should be needed if there is only 1 step.

@interstates21 @SilverInfinity waiting for my PR #84 to merge which resolves this issue

Version 1.0.3 should fix this issue: https://github.com/24ark/react-native-step-indicator/blob/1df202c5f819b58445c2b1b99a0e08dc8398f4e0/src/index.tsx#L399


[ ROS2 Porting ] : Successful port to ros2 for simulation_gazebo and simulation_rviz

Ports all scripts to rclpy for simulation rviz
Adds new launch files in the form of python scripts
Adds ros2_control
pending script for rviz

Merging this, still some issues persists which can be resolved by later commits by juniors

Need to update the documentation for each folder
Need to update the code structure and add necessary comments


code helper 100% because of typescript-language-features

Code Helper drives me crazy with using 100% cpu in some projects.
It does not always happen, but i think it is related to large projects. I tried to add all big folders (node_modules, some build folder, meteor local folder) to files.exclude, files.watcherExclude and search.exclude, but with no luck.
Grepping the amok helper reveals:
/Applications/Visual Studio Code.app/Contents/Frameworks/Code Helper.app/Contents/MacOS/Code Helper /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/typescript-language-features/out/utils/electronForkStart.js /Applications/Visual Studio Code.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js --useInferredProjectPerProjectRoot --enableTelemetry --cancellationPipeName /var/folders/8h/pr6752ps02b1pg638btj4cbc0000gp/T/vscode-tscancellation-667e5036c3ac0c42672e.sock* --globalPlugins typescript-styled-plugin --pluginProbeLocations /Users/macrozone/.vscode/extensions/jpoissonnier.vscode-styled-components-0.0.21 --locale de --noGetErrOnBackgroundUpdate

I don't use typescript in that project (using flow here)

VSCode Version: 1.25.1
OS Version: mac OS high sierra

Steps to Reproduce:

have some large build folder in your project
open vscode

Does this reproduce in the latest VS Code insiders build?
Also, try configuring a jsconfig.json file with the exclude to exclude the node_modules and build files from intellisense

@mjbvz i did not try to run it with latest vscode yet, but i can give it a try.  Can you provide a link to the issue that has been fixed in the latest vscode insiders build?
Is it possible to add this configuration to vscode user settigs? Having a jsconfig.json seems to be very non-standard to me (first time i see that)

same thing happened to me. still hapenning with code-insiders.
after disabling extension for styled-components I have this:
USERNAME              95652  99.6  2.7  5480312 447872   ??  R     2:30PM   1:58.61 /Applications/Visual Studio Code - Insiders.app/Contents/Frameworks/Code - Insiders Helper.app/Contents/MacOS/Code - Insiders Helper /Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/typescript-language-features/out/utils/electronForkStart.js /Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/extensions/node_modules/typescript/lib/tsserver.js --useInferredProjectPerProjectRoot --enableTelemetry --cancellationPipeName /var/folders/6t/1631xl2568nbpqr5g0_0xly80000gn/T/vscode-typescript/tscancellation-7f17a37a2bb6ca1fcd5a.tmp* --locale en --noGetErrOnBackgroundUpdate
USERNAME              96905   0.0  0.0  4276984    924 s002  S+    2:32PM   0:00.00 grep 95652

Also this still an issue after I updated my jsconfig with exclude.

adding a jsconfig that is identical to my tsconfig just without the ts specific stuff solved the issue on a 100% reproducible file...
I will try to use vscode again (had to stop since it was impossible to use...) and report back
👍
@maxkomarychev thanks for commenting in #51776 !

@id0Sch hey, could you please share your tsconfig/jsconfig which solved the issue for you?
Thanks.

there's probably alot of useless stuff in there but here you go.
tsconfig
{
  "compilerOptions": {
    "sourceMap": true,
    "noImplicitAny": false,
    "noUnusedLocals": true,
    "allowSyntheticDefaultImports": true,
    "forceConsistentCasingInFileNames": true,
    "noUnusedParameters": true,
    "removeComments": false,
    "moduleResolution": "node",
    "outDir": "./dist/",
    "module": "esnext",
    "target": "es5",
    "jsx": "react",
    "allowJs": true,
    "lib": [
      "dom",
      "es5",
      "es6",
      "es2015",
      "es2016",
      "es2017.object"
    ],
    "baseUrl": "./src",
  },
  "include": [
    "./src/**/*.ts*"
  ],
  "exclude": [
    "**/node_modules/**",
    "**/webpack_cache/**",
    "**/dist/**"
  ]
}

jsconfig
{
  "compilerOptions": {
    "sourceMap": true,
    "noImplicitAny": false,
    "noUnusedLocals": true,
    "allowSyntheticDefaultImports": true,
    "forceConsistentCasingInFileNames": true,
    "noUnusedParameters": true,
    "removeComments": false,
    "moduleResolution": "node",
    "outDir": "./dist/",
    "module": "es6",
    "target": "es5",
    "jsx": "react",
    "lib": [
      "dom",
      "es5",
      "es6",
      "es2015",
      "es2016",
      "es2017.object"
    ],
    "baseUrl": "./src"
  },
  "include": [
    "./src/**/*.js*"
  ],
  "exclude": [
    "**/node_modules/**",
    "**/webpack_cache/**",
    "**/dist/**"
  ]
}

and thats my usersettings.json for vscode itself
{
    "window.zoomLevel": 0,
    "search.exclude": {
        "**/node_modules": true,
        "**/node_modules/**": true,
        "**/bower_components": true,
        "**/dist/**": true,
        "**/github.com": true,
        "**/golang.org": true
    },
    "eslint.run": "onSave",
    "eslint.autoFixOnSave": true,
    "files.autoSave": "afterDelay",
    "javascript.format.insertSpaceBeforeFunctionParenthesis": true,
    "typescript.format.insertSpaceBeforeFunctionParenthesis": true,
    "javascript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true,
    "typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true,
    "typescript.format.insertSpaceAfterConstructor": true,
    "javascript.format.insertSpaceAfterConstructor": true,
    "diffEditor.ignoreTrimWhitespace": false,
    "files.exclude": {
        "/.git": true,
        "/.svn": true,
        "/.hg": true,
        "/CVS": true,
        "/.DS_Store": true,
        "**/dist/**": true,
        "/node_modules": true,
        "/node_modules/": true,
        "**/node_modules/**": true,
        "**/webpack_cache/**": true,
    },
    "files.watcherExclude": {
        "/.git": true,
        "/.svn": true,
        "/.hg": true,
        "/CVS": true,
        "/.DS_Store": true,
        "**/dist/**": true,
        "/node_modules": true,
        "**/node_modules/**": true,
        "**/webpack_cache/**": true,
        "**/.git/objects/**": true,
        "**/tmp/**": true,
        "/node_modules/": true,
        "**/*.gzip": true
    },
    "files.useExperimentalFileWatcher": false,
    "editor.formatOnSave": false, //TODO:change back
    "workbench.colorTheme": "Darcula",
    "explorer.confirmDragAndDrop": false,
    "editor.tabSize": 2,
    "npm.packageManager": "yarn",
    "grunt.autoDetect": "off",
    "json.schemas": [
        {
            "fileMatch": [
                "**/manifest.json"
            ],
            "url": "http://json.schemastore.org/chrome-manifest"
        }
    ],
    "workbench.editor.enablePreview": true,
    "editor.fontLigatures": true,
    "editor.fontFamily": "'Fira Code'",
    "emmet.showAbbreviationSuggestions": false,
    "emmet.optimizeStylesheetParsing": false,
    "emmet.excludeLanguages": [
        "markdown",
        "javascript",
        "javascriptreact",
        "typescript",
        "typescriptreact",
        "*"
    ],
    "eslint.packageManager": "yarn",
    "eslint.validate": [
        {
            "language": "javascript",
            "autoFix": true
        },
        {
            "language": "javascriptreact",
            "autoFix": true
        },
        {
            "language": "typescript",
            "autoFix": true
        },
        {
            "language": "typescriptreact",
            "autoFix": true
        }
    ],
    "git.autofetch": false,
    "typescript.updateImportsOnFileMove.enabled": "always",
    "gitlens.advanced.messages": {
        "suppressShowKeyBindingsNotice": true
    },
    "breadcrumbs.enabled": true,
    "git.enabled": true,
    "typescript.tsserver.log": "verbose",
}

Thanks,
tried with yours both jsconfig and tsconfig. CPU usage dropped only to ~50%.
Interestingly enough, when I use the following files (provided below) I have the same effect of "Code Helper" hanging around 50%. None of the files have exclude specifier, also tsconfig is completely empty. I achieved 50% drop by simply adding empty tsconfig.json
jsconfig
{
    "compilerOptions": {
        "target": "ES6",
        "module": "commonjs",
        "allowSyntheticDefaultImports": true,
        "experimentalDecorators": true,
        "baseUrl": "./",
        "paths": {
            "app/*": ["src/*"]
        }
    }
}

tsconfig
{}

So I kept working and I still get 100% CPU even with the jsconfig :\

same issue here, but with ES6 JS in a create-react-app setting.
Project isn't even that big yet, around 20components, but i keep getting 100% CPU usage after a while.
I've excluded the node_module, build, .git, etc. folders, still same thing. After a while the code color formatting is breaking, 'tab' isn't working anymore, the whole application gets sluggish and un-responsive.
Today the battery of my MBP started at 20%, while charging, dropped to 5% because of code helper having a hard time.. (In activity monitor it was clear CodeHelper was using all the power and CPU, took around 3 hours)
Just stating this so it's clear this issue is a real thing,..

Don't know if this is related, but it's not only Code Helper that does this. I've also experienced Chrome's helper spike up to 95 - 100% CPU usage sometimes when refreshing the project I am working on.


feat: show all errors on every line

With the default LSP diagnostic virtual_text option we can see the virtual_text on every lines where there is a mistake.
I would like the same thing on this plugin.
I do not use symbol column as I like things minimal (I also prefer no statusline etc.) therefore I really need virtual_text everywhere

Hello!
I know it's something that could be useful, but it also completely defeats the plugin's purpose, as it is meant to only show what the diagnostic under the cursor is, to reduce noise and too much feedback. So, I'm very mitigated about it...

Hello!
I know it's something that could be useful, but it also completely defeats the plugin's purpose, as it is meant to only show what the diagnostic under the cursor is, to reduce noise and too much feedback. So, I'm very mitigated about it...

Maybe add a optional opts? Or a new plugin maybe 🤔

Hello!
I know it's something that could be useful, but it also completely defeats the plugin's purpose, as it is meant to only show what the diagnostic under the cursor is, to reduce noise and too much feedback. So, I'm very mitigated about it...

I am not interested in only having one error displayed.
I find the design of the errors/warnings appealing. Posts on Reddit also describe the main interest of this plugins as being prettier than vanilla warning/errors
If it can be made optional what's the harm ? If you're not willing to code it lmk if you would accept a PR

Yes you can try, but since the code was neither designed nor optimized for this use, it is quite difficult to implement!

With the default LSP diagnostic virtual_text option we can see the virtual_text on every lines where there is a mistake. I would like the same thing on this plugin. I do not use symbol column as I like things minimal (I also prefer no statusline etc.) therefore I really need virtual_text everywhere

If you like, you can try my plugin better-diagnostic-virtual-text. Please note that as a student, there may be periods when I am unable to maintain it due to my academic commitments. Additionally, the plugin is designed to work with my personal theme and does not support built-in highlighting like tiny-diagnostic.nvim. You may need to write some custom code to enhance your experience. I'm not like all diagnostics so may be it had some bugs.

With the default LSP diagnostic virtual_text option we can see the virtual_text on every lines where there is a mistake. I would like the same thing on this plugin. I do not use symbol column as I like things minimal (I also prefer no statusline etc.) therefore I really need virtual_text everywhere

If you like, you can try my plugin better-diagnostic-virtual-text. Please note that as a student, there may be periods when I am unable to maintain it due to my academic commitments. Additionally, the plugin is designed to work with my personal theme and does not support built-in highlighting like tiny-diagnostic.nvim. You may need to write some custom code to enhance your experience. I'm not like all diagnostics so may be it had some bugs.

That's... something I haven't seen yet, to promote your own work on an issue.

With the default LSP diagnostic virtual_text option we can see the virtual_text on every lines where there is a mistake. I would like the same thing on this plugin. I do not use symbol column as I like things minimal (I also prefer no statusline etc.) therefore I really need virtual_text everywhere

If you like, you can try my plugin better-diagnostic-virtual-text. Please note that as a student, there may be periods when I am unable to maintain it due to my academic commitments. Additionally, the plugin is designed to work with my personal theme and does not support built-in highlighting like tiny-diagnostic.nvim. You may need to write some custom code to enhance your experience. I'm not like all diagnostics so may be it had some bugs.

That's... something I haven't seen yet, to promote your own work on an issue.
ah I'm a bit hesitant about publishing my plugin in an issue of another project, so I wrote it down a bit

Hi again.
I've finally succeeded to implement multilines diagnostics.
Example:

It'll probably need more tweaking, but the core principle is done.

You can enable it like so:
opts = {
    options = {
        multilines = true,
    }
}

Yes, it works flawlessly. Thanks a lot !

Do not hesitate to comment on the issue if you find anything.
Thank you !


quick fix: ProcessCodegen.ofFiles() should accept any Collection and not just List

one-liner. If builds pass, we merge.

no need to fix this, added fix in PR #40


All URLs should be https

There's a number of URL calls that aren't https. In some cases the web server will redirect that call to an https version, but in some cases a 'pure' http response will be served.
These calls should all be upgraded to https.

fix incoming (PR TBC)

Hey @jdx
Any reason why this is undesired?

https://github.com/jdx/mise/pull/2266


Contributing a EKS ServiceAccount wrapper IAM module

I saw that #37 just added the OIDC module which is awesome. I had a similar module which is now based on this which is great. I was wondering if it would make sense to add another small wrapper around the iam-assumable-role-with-oidc module which handles setting values correctly for EKS service accounts. For what it's worth, my current module looks like this:
module "eks_service_account_iam_role" {
  source  = "terraform-aws-modules/iam/aws//modules/iam-assumable-role-with-oidc"
  version = "~> 2.0"

  create_role = true
  role_name   = var.role_name
  tags = {
    role = var.role_name
  }
  provider_url                  = "${replace(var.cluster_oidc_url, "https://", "")}"
  oidc_fully_qualified_subjects = ["system:serviceaccount:${var.namespace}:${var.service_account}"]
  role_policy_arns              = var.policy_arns
}

I made a PR to handle removing the https:// prefix in #50, but I was wondering if it would seem useful enough to have a small wrapper which a namespace and service account and maps to the above example (and/or supporting a list of namespace/service account for oidc_fully_qualified_subjects). It's not super complicated so I can see this being something that doesn't need to live in this module, but I figured I would ask.

How would this wrapper look when implemented or used? How would it shorted or simplify your example there?

Ah I can't believe I forgot that. Something like this:
module "loki_iam" {
  source    = "terraform-aws-modules/iam/aws//modules/iam-assumable-role-with-oidc/eks_service_account"
  role_name = "eks-role-${module.eks_staging.cluster_name}-loki_logs"

  namespace       = var.loki_namespace
  service_account = var.loki_service_account_name
  policy_arns     = [aws_iam_policy.loki_logs.arn]

  cluster_oidc_url = module.eks_staging.cluster_oidc.url
}

50/50 TBH. It's a little bit tidier but doesn't save much 😅 I'll defer to a maintainer of this repo.

closed by #179


Modernize the codebase

We will follow the StandardJS and adopt latest and greatest of ECMAScript. Also fix some performance issues in the process, like recursion.

dude, can't see any progress...

There is a better driver in Typescript now, the rethinkdb-ts


Microsoft Acronyms (Independent Publisher)

When submitting a connector, please make sure that you follow the requirements below, otherwise your PR might be rejected. We want to make you have a well-built connector, a smooth certification experience, and your users are happy :)
If this is your first time submitting to GitHub and you need some help, please sign up for this session.

[X] I attest that the connector doesn't exist on the Power Platform today. I've verified by checking the pull requests in GitHub and by searching for the connector on the platform or in the documentation.
[X] I attest that the connector works and I verified by deploying and testing all the operations.
[X] I attest that I have added detailed descriptions for all operations and parameters in the swagger file.
[X] I attest that I have added response schemas to my actions, unless the response schema is dynamic.
[X] I validated the swagger file, apiDefinition.swagger.json, by running paconn validate command.
[X] If this is a certified connector, I confirm that apiProperties.json has a valid brand color and doesn't use an invalid brand color, #007ee5 or #ffffff. If this is an independent publisher connector, I confirm that I am not submitting a connector icon.

If you are an Independent Publisher, you must also attest to the following to ensure a smooth publishing process:

[X] I have named this PR after the pattern of "Connector Name (Independent Publisher)" ex: HubSpot Marketing (Independent Publisher)
[X] Within this PR markdown file, I have pasted screenshots that show: 3 unique operations (actions/triggers) working within a Flow. This can be in one flow or part of multiple flows. For each one of those flows, I have pasted in screenshots of the Flow succeeding.
[X] Within this PR markdown file, I have pasted in a screenshot from the Test operations section within the Custom Connector UI.
[X] If the connector uses OAuth, I have provided detailed steps on how to create an app in the readme.md.

Hello @troystaylor,
Please resolve validator error messages.

@vmanoharas Please provide an update on why this PR is still open.
CC: @jopanchal @ShefaaliP

Hi @troystaylor,
Please see swagger validation error and fix the same.
"The connector cannot be in Production status on a beta service. ValuePath: /basePath"
Thank you for your patience and understanding.

Hello @troystaylor,
Can you please address the swagger validation errors?

API has moved to production (v1.0) from beta.

Hello Partner,
I hope you are doing well.
Congratulations, the deployment of your connector and documentation page was already completed, We have a short survey on the connector certification process that we would like for you to complete. Your feedback is appreciated and will help us improve the program.
Thank you very much for working with us.


ARM systems support

What feature would you like to see added to TallyArbiter?
I want this feature!
Is there anyway that in the future you will provide support for Windows 10 ARM?

Are you talking about the Desktop Version?
The npm package should also work on arm.

I'm running Windows 10 on a Raspberry Pi 4 and the normal exe doesn't work until I realised it was x64.

Definitely interesting. I've never tried that.
We can probably build the Desktop App for arm. However, unfortunately, I currently don't have time to look into this.
If you want to contribute, feel free to do so 👍

Yeah I'm sure Github actions can build whatever windows arm version is needed and include it in the tagged releases. You could also just install nodejs and run the project from source


spies_report.py csv format

From Rhutenia:
at the end of each line of the csv was a comma and a space
this caused it to import into Excel very badly... it put a blank line between each entry
also, apparently Excel has an issue with the first 2 characters being "ID"... lowercase id works fine :)

I've never actually tried importing into Excel.  Try it out and see what's going on.

The code allowed for an extra field at the end - the name of the planet to which the spy is assigned, if it's known.  That field rarely, if ever, contains data.  Worse, there was no header entry for it, and I think that's what was confusing Excel (LibreOffice had no problem with it).
Anyway, that phantom field is gone, so the output should now make Excel happy.


Allows dots to be initialised as they're being typed

Would it be possible to have the indicator dots show up as they're being typed (for a non-fixed PIN length) instead of having the number of dots be the length of the PIN?

This is a good suggestion. Actually, the indicator was not designed for non-fixed pin lengths. But can be modified easily.

@ProfPh you could do this by setting app:dotEmptyBackground to be transparent, no? Unless I'm misunderstanding your intent.

This has been implemented in version 2.0. Please update and try using the fill and fillWithAnimation attributes.


Icons on the road do not rotate with view

ViewRotateIconsOnRoadsBug.zip
When rotating the map, the icons on roads like directions and oneway arrows stay the same direction canvas wise. They should rotate with the road of course.

if icon alignment (pitch) ist set to "viewport" the rotation is aligning to "viewport" as well.
For this use case it makes sense to introduce "rotationAlignment" property to allow individual control about rotation behavior and decouple from pitch alignment.
A quick fix is to set icon alignment to "map" for now.


[BUG] Pymars fails to exit console normally after python console and script execution when supervisor and worker start locally

Describe the bug
After starting supervisor process and worker process locally, when executing pymars codes in python console or a single python script, pymars cannot exit normally. Instead I have to use ctrl+c to exit the command line.
While pymars can exit normally in IPython.
To Reproduce
To help us reproducing this bug, please provide information below:

Your Python version: 3.9.12
The version of Mars you use: 0.9.0, the latest version of pymars, using pip install.
Versions of crucial packages, such as numpy, scipy and pandas: follow pymars.
Full stack of the error: No logs in supervisor and worker process. And no information in console when press Ctrl+C.
The situation: See the screenshots:

Run in the python console:

Run in a script:

Minimized code to reproduce the error.

Firstly, start supervisor process and worker process locally.

mars-supervisor -H <IP_ADDRESS> -p 9002 -w 9001
mars-worker -H <IP_ADDRESS> -p 9003 -s <IP_ADDRESS>:9002

Secondly, run the following codes in python console.

import mars
import mars.tensor as mt

s = mars.new_session('http://<IP_ADDRESS>:9001')

a = mt.random.rand(4, 4, chunk_size=2)
b = mt.inner(a, a)
b.execute()  # submit tensor to cluster

Last, execute exit() try to exit the python console.

exit seems simply raises SystemExit error (refer to https://stackoverflow.com/a/19747562 ), perhaps we did not properly handle this error?

I reproduced this issue and found the decref thread hang when console exit. Then I commented these two line and works, https://github.com/xprobe/mars/blob/fc798e3cd3d4e8874c91b1e22ae6919f952e24d0/mars/core/entity/executable.py#L70-L71 Any idea to fix it properly @qianduoduo0904 ?

I cannot reproduce on current master, if there is confirmation from other people, we can close this issue first.

Now this issue has been fixed. Close it now.


[ospec] provide diffing hook for failed tests?

@lhorie
any interest in providing a hook to display an actual vs expected diff for failed tests. maybe also for rendering the expected values of passing tests.
thanks!

It already displays expected and actual values on a failure. Do you mean like an output formatter?

right, a pluggable diff renderer. a la http://kpdecker.github.io/jsdiff/

sorry, no, "pluggable" is like the antithesis of ospec :)

the alternatives being?

some anointed dependency (also antithesis)
baked-in fast diff implementation (bloat, moar antithesis)
¯\_(ツ)_/¯

the alternatives being?

leaving it the way it is because I don't use diff reporting
use another tool that embraces configurability if diff reports matter enough to warrant it


RadzenDataGrid - wrong filter format when OData source is null

Hi all,
I followed the filter API tutorial on https://blazor.radzen.com/datagrid-filter-api with a grid that uses an odata API to load data.
Unfortunately, when the grid calls LoadData the first time the source is null, and the filter received in the arguments isn't in odata format.
I expected a filter in this format:
'tolower(WorkOrderCode) eq tolower('AAA') and contains(tolower(SerialNumber), tolower('BBB'))'
But instead, I received this format:
(WorkOrderCode == null ? "" : WorkOrderCode).ToLower() == "AA3333".ToLower()
The issue is caused by the method IsOData which return false if Data is null
internal bool IsOData()
{
    if(isOData == null && Data != null)
    {
        isOData = typeof(ODataEnumerable<TItem>).IsAssignableFrom(Data.GetType());
    }
    return isOData != null ? isOData.Value : false;
}

Honestly, I cannot say whether this is a real problem, but it is certainly a situation that can waste a lot of time.
The solution (workaround?) is to initialise Data with a new, empty instance of ODataEnumerable. For example:
ODataEnumerable<WorkOrder> _workOrders = new(Enumerable.Empty<WorkOrder>());
Thanks
G.

The empty instance of ODataEnumerable is the only way to handle this and unfortunately we don’t have any other solutions.


Shape is int32_t instead of int64_t

Hey everyone,
i noticed when asking for the shape of a tensor I receive wrong values. One constructor says to feed in the shape as std::vector<int64_t>, which may be fine. But when receiving a shape I need to cast to int32_t!
auto tensor = cppflow::fill({1, 2, 2, 3}, 0.9f);
auto shape_wrong = tensor.shape().get_data<int64_t>(); // contains wrong values
auto shape_corrct = tensor.shape().get_data<int32_t>(); // contains correct values

I recommend to use the following constructor which may not lead to confusion:
template<typename T>
tensor(const std::vector<T>& values, const std::vector<int32_t>& shape);

Also consider to add a get_shape() function which returns the shape as a std::vector<int32_t>.

Hi @bytosaur ,
Thanks for pointing this,
I didn't realize that tf.raw_ops.Shape returns an int32_t tensor by default. I should specify to return a int64_t to be consistent.
I think is better to change the shape function, as changing the constructor would then require to cast the values to int64_t because that is the expected input of
TF_AllocateTensor(TF_DataType, const int64_t* dims, int num_dims, size_t len)

Thanks!

hey @serizba,
thank you for making this repository, you are doing a great job! We have used it to make an addon for openFrameworks https://github.com/zkmkarlsruhe/ofxTensorFlow2
In this project we stuck to the int64_t and convert the output of shape():
cppflow::cast(tensor.shape(), TF_INT32, TF_INT64).get_data<int64_t>();

It may be off topic. Is there any possibility to place some runtime check
such that only the right get_data() is called?
On Tue, Feb 23, 2021, 11:56 paul<EMAIL_ADDRESS>wrote:

hey @serizba https://github.com/serizba,
thank you for making this repository, you are doing a great job! We have
used it to make an addon for openFrameworks
https://github.com/zkmkarlsruhe/ofxTensorFlow2
In this project we stuck to the int64_t and convert the output of shape():
cppflow::cast(tensor.shape(), TF_INT32, TF_INT64).get_data<int64_t>();
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/serizba/cppflow/issues/91#issuecomment-784348003, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AALDTHX74Z5N57T5XXTVMMLTAPM3BANCNFSM4WLXMBDQ
.

Hi @bytosaur
Now we specifically ask for int64_t in tensor::shape(), so the problem should be solved.
Thanks for your message. By the way, the project you are working on looks very interesting, good luck with it!

@ljn917
Good suggestion, thanks!
I have included a runtime check of the datatype such that it throws an error if the function get_data<T>() is invoked asking for a datatype different from the tensor type.


How can I retrieve a list of all available field types defined in Backpack?

I am creating a poll generator app, my idea is to use the field types and allow the user to create a poll by selecting the field types for the questions and type of answers.
That is why I will need to retrieve a list of field types.
After the user created the poll, my idea is to create a specific crud for that poll so I can present that to the users that will  complete the poll.
Thanks in advance, and sorry if its not the correct place to ask this questions.

All available fields are listed in /src/resources/views/fields/ but some of them will not be adecuate for that usage (upload, base64_image, custom_html, date...), you better create an array of options, it will allow you to define your custom fields as well.

You could of course glob the vendor dir to pull out all the fields you want, then merge with your resource folder.
But as @marcosBL said not everything will be appropriate, and if we ever change the directory structure your application will break.
I as well would just suggest hardcode a config item with all the field types you need in it, which will be more deployable, easier to monitor and track file changes using a VCS and it won't add a performance overhead either as reading files is slow


move benjamintf1 to approver for capi

Hi. Long time contributor to cf.
I've collected a few Capi Contributions:

https://github.com/cloudfoundry/cloud_controller_ng/pull/3270
https://github.com/cloudfoundry/cloud_controller_ng/pull/3098
https://github.com/cloudfoundry/cloud_controller_ng/pull/2900
https://github.com/cloudfoundry/capi-release/pull/266
https://github.com/cloudfoundry/capi-release/pull/73#issuecomment-413235080
https://github.com/cloudfoundry/capi-release/pull/163#issuecomment-606735820
https://github.com/cloudfoundry/capi-release/pull/94
worked with Michael Oleske on updating the capi certs for capi.
https://cloudfoundry.slack.com/archives/C07C04W4Q/p1680196229614289
https://cloudfoundry.slack.com/archives/C07C04W4Q/p1540491354000100
https://cloudfoundry.slack.com/archives/C07C04W4Q/p1522165747000724
https://github.com/cloudfoundry/capi-ci/pull/41
https://github.com/cloudfoundry/cloud_controller_ng/pull/3450
https://github.com/cloudfoundry/cloud_controller_ng/pull/3461
https://github.com/cloudfoundry/cloud_controller_ng/pull/3503
https://github.com/cloudfoundry/cloud_controller_ng/pull/3659

And I'm looking to be more involved in capi work in the future.

Hi @Benjamintf1,
according to rfc-0008-role-change-process you would need 4 more contributions (PRs, issues and discussions e.g. #capi channel will do as well).
In addition, two existing capi approvers need to give their +1.
Since you are a long term contributor to CF and you have worked in the logging area before, I could imagine to grant you approver rights on a fast-track (i.e. without waiting for 4 additional contributions) if existing capi approvers support this.
Best regards, Stephan

As a CAPI approver, I support fast-tracking @Benjamintf1 as an approver.

just cause I don't see it here will point out at least one issue Ben has filed against cloud_controller_ng https://github.com/cloudfoundry/cloud_controller_ng/issues/3506 to tack on the list of contributions
giving my approval as well as a CAPI approver

@Benjamintf1 this is still a DRAFT. Is this by intention?

+1

@Benjamintf1: Needed approvals are there now. If you make the PR 'ready for review' (= remove draft), I would merge it.


Version information is lost

It used to be more clearer in what version a specified function (or any other object) it was supported. The top of the page would explain for this specific function it is supported since 2017.

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

ID: f748e679-fde4-3cc7-4200-7b45adb74a21
Version Independent ID: 6946f36e-4731-1ed9-365a-0085103a630e
Content: CONCAT_WS (Transact-SQL) - SQL Server
Content Source: docs/t-sql/functions/concat-ws-transact-sql.md
Product: sql
Technology: t-sql
GitHub Login: @MikeRayMSFT
Microsoft Alias: mikeray

I agree, it used to be very easy to determine the SQL Server versions that supported a specific T-SQL object/language construct. Now it seems you have to select each version of SQL Server in the top left menu to see if an error pops up to determine that a T-SQL object/language construct has not been documented for a specific version. But then the question is whether that also means that it's not supported by that specific SQL Server version... Please, please make this explicit once again!

@mverbaas Thank you for the feedback.
Please refer to active issue https://github.com/MicrosoftDocs/sql-docs/issues/3616.


Make the mobile navbar top to bottom when click the hamburger icon.

Is your feature request related to a problem? Please describe.
Currently the mobile navbar is like left to right when click the hamburger icon.
Describe the solution you'd like
Make the mobile navbar top to bottom when click the hamburger icon.
Are you working on it?
Yes

Shall I work on this?

Thanks

Is your feature request related to a problem? Please describe. Currently the mobile navbar is like left to right when click the hamburger icon.
Describe the solution you'd like Make the mobile navbar top to bottom when click the hamburger icon.
Are you working on it? Yes

Is this way is good or the current way good. tell me you suggestions. (@kumuditha-udayanga , @Piumal1999 , @jayasanka-sack )


feat(pillarbox): enable smooth seeking by default

Description
Closes #155 by enabling smooth seeking by default for Pillarbox. This feature improves the user experience by providing smoother interaction with the progress bar.
Screencast from 03. 01. 24 15:21:49.webm
Changes made

Pillarbox options enableSmoothSeeking property is set to true
add a test case
Demo player, remove the enableSmoothSeeking from DEFAULT_OPTIONS

I've tested this on safari for iphone and mac and I've not observed any strange jumps. For me it's ok to enable this behaviour by default, the experience is much better specially for mobile devices.

@jboix thanks for the feedback, that's great!


Prefer showing verbatim occurrence data, rather than interpreted data

The current portal shows interpreted data, and hides verbatim data on a separate tab.  The new portal is bringing the verbatim data to the same page, but I think we should consider something more radical:
For some fields, primarily the taxonomy, show the data provider's verbatim data, and give less prominence to our interpretation.
This would be especially useful where we have matched to a higher taxon, made a fuzzy taxon match, or made no match at all.
We should look at our data and see what the effect of this would be.  We have good occurrence data which is linked to a poor part of the taxonomic backbone (looks bad for the data provider), but we also have poorer occurrence data which is improved by showing the interpreted name.

closed by https://github.com/gbif/portal16/commit/6b459a6db217e75d6e6fac8ac999a04929f893ec


Doesn't work with laravel 7

Nice wrapper, however doesn't work with latest Laravel7 version. Composer conflicts

Composer is now updated to support latest Laravel release.


Row count in View Data?

Is there any way to see the row count for a table in the View Data screen?  Looks like the default number of sample rows is 200, but would be helpful to see the total count(*) somewhere on that view.
Thanks.

You can use the btn Calculate total row count in the bottom toolbar.

For more options please see https://github.com/dbeaver/dbeaver/wiki/Data-Editor.
If you need, it is possible to change fetch size (200 rows):
1 Change row number manualy in Bottom toolbar and press Refresh

2 Press Settings btn in Bottom toolbar and change ResultSet fetch size


Update MXNet examples with Gluon training APIs

A large number of examples in the mxnet official repo is using the Module APIs for training. Since the Module APIs will be removed in mxnet 2.0 in favor of the easier-to-use Gluon APIs, it will be great to get help from the community to update/rewrite these examples using the Gluon APIs.
Below is a list of examples using Module APIs

[ ] autoencoder / variational autoencoder
[ ] baysian-method
[ ] capsnet (capsule network)
[ ] cnn_chinese_text_classification
[ ] ctc (connectionist temporal classification for speech)
[ ] deep-embedded-clustering
[ ] dsd (dense-sparse-dense training)
[ ] fcn-xs
[ ] gan
[ ] model-parallel
[ ] module
[ ] multivariate-time-series
[ ] named-entity-recognition
[ ] nce-loss
[ ] neural-style
[ ] rcnn
[ ] numpy-ops
[ ] reinforcement-learning
[ ] rnn
[ ] sparse
[ ] speech-recognition
[ ] svrg-module
[ ] vae-gan

Going forward, we should have properly maintained examples that are checked by CI and rerun frequently to make sure they are function. We should probably decide on the proper infrastructure for doing that first.
Also, since the toolkits are better equipped to maintain examples for each domain, it might be a good idea to having them in the toolkits instead.

Going forward, we should have properly maintained examples that are checked by CI and rerun frequently to make sure they are function. We should probably decide on the proper infrastructure for doing that first.
Also, since the toolkits are better equipped to maintain examples for each domain, it might be a good idea to having them in the toolkits instead.

Toolkits distributed in different repos and it's hard to get by newer. I think the basic examples are still very helpful to illustrate the FWK's usage and capability.

I created the repository for examples here: https://github.com/apache/incubator-mxnet-examples


brave: fix GPU acceleration on Wayland

Description of changes
Fixes GPU acceleration for Brave on Wayland, see https://github.com/NixOS/nixpkgs/issues/137232
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

seems good here! just tested applying this patch to nixos-unstable!