S3Store: IAM fixes for incomplete parts

This is a followup from #219 and addresses two issues related to IAM permissions.
First, the use of HeadObject as an optimization requires the s3:ListBucket permission to be granted, and using both HeadObject and GetObject to reference .part files was difficult to reason about. This is resolved by using GetObject only. Second, buckets that are configured with object versioning would have needed the s3:DeleteObject and s3:DeleteObjectVersion permissions to be granted, which is not ideal and represents a breaking change. By overwriting the existing .part object (if any) with an empty one, we can avoid the complexity associated with deleting objects.
See #226 for more discussion.

Truncating the part files instead of removing them is a very non-intuitive action and while both approaches may result in the same upload handling, it will probably cause a lot of confusion if the users end up with a massive amount of empty files in their buckets.

I agree. We should try to find a better solution if possible.

Also, since I have never used object versioning, I would have one question: Is it not possible to delete the most recent object version just using s3:DeleteObject and without s3:DeleteObjectVersion?

No, unfortunately that will result in an AccessDenied error in the case of a versioned object. If the request has both s3:DeleteObject and s3:DeleteObjectVersion permissions, then S3 will insert a delete marker as the most recent version and will return 404 for subsequent GetObject requests. If the application doesn't delete each version of the object, then the bucket owner is responsible for setting up an expiration policy to purge deleted versions.
Maybe it's safe to assume that tusd users who have object versioning enabled will already have included the s3:DeleteObjectVersion permission, which would be required for the Terminate extension to work with the current setup (prior to #219). My only concern is that there may be existing deployments that use versioned objects but don't use Terminate, and the new requirement of s3:DeleteObjectVersion will be a breaking change for them. Does that seem acceptable?

No, unfortunately that will result in an AccessDenied error in the case of a versioned object. If the request has both s3:DeleteObject and s3:DeleteObjectVersion permissions, then S3 will insert a delete marker as the most recent version and will return 404 for subsequent GetObject requests. If the application doesn't delete each version of the object, then the bucket owner is responsible for setting up an expiration policy to purge deleted versions.

Ok, thank you very much for clarifying this. I have never used versioning for S3, so that was really helpful.

Maybe it's safe to assume that tusd users who have object versioning enabled will already have included the s3:DeleteObjectVersion permission, which would be required for the Terminate extension to work with the current setup (prior to #219). My only concern is that there may be existing deployments that use versioned objects but don't use Terminate, and the new requirement of s3:DeleteObjectVersion will be a breaking change for them. Does that seem acceptable?

Yes, I think this is acceptable for now. This compromise allows us to get your PR merged quickly and fix the problems other people have encountered as well. If we then see that many people have issues with upgrading tusd, we can act accordingly (maybe we can even include a test into tusd for checking whether it has the correct permission in the future). Does this sound good for you?

Sounds good to me. I've removed the empty-object piece from this PR, fixed a related issue that was causing DeleteObjects errors not to be returned properly, updated the docs, and rebased onto master.

@Acconut I've gotten a report of mismatched offset errors that may be related to these changes (or perhaps the earlier PR). I'm investigating and will post back soon.

I traced the problem to inconsistent behavior between DeleteObject and DeleteObjects on versioned buckets. The response from DeleteObjects seems to indicate that a delete marker has been added for the object:
{
  DeleteMarker: true,
  VersionId: "[...]"
}

but the object can still be fetched with GetObject, and the AWS console doesn't show a delete marker for it. This behavior isn't documented in the S3 docs, AFAICT, and I don't see any missing permissions in my configuration that would explain it. Because the .part object is still accessible, GetInfo is including it in its offset calculation and returning an incorrect value -- hence the mismatched offset error.
However, using DeleteObject (singular) creates a delete marker as expected and has the benefit of being simpler. I've updated this branch to use it.
If anyone is using an S3 bucket with object versioning enabled and is willing to help out, I would be grateful for the extra testing and eyeballs.

I've tested the latest changes on a versioned bucket with many different chunk sizes and haven't had any issues.
The requirement for s3:DeleteObjectVersion doesn't seem to apply to DeleteObject, so we could remove that mention from the docs and error logging if we want. That addresses the concern that I had earlier. (It's also possible that my prior config was to blame, or I was using DeleteObjects incorrectly -- not sure. It's been challenging to track the various configurations and permissions.)
Since there's been a bit of churn here, this is the current state of things:

Replace HeadObject with GetObject, which simplifies the set of IAM permissions that are required and makes S3Store's behavior easier to reason about.
Replace DeleteObjects with DeleteObject, which simplifies the set of IAM permissions that are required and also simplifies the code a bit.

@Acconut, how are you feeling about this PR?

Wow, thank you very much for your research! It is astonishing how different the DeleteObject and DeleteObjects methods are. Have you talked to a person from AWS to confirm if this behavior is intentional and if we can rely on this (undocumented?) behavior?
Other than that, I think this PR is looking good and, unless you have remaining todos, I would be open for merging this.
Also, apologies for my delay and short comments, private life is getting in the way.

Have you talked to a person from AWS to confirm if this behavior is intentional

I haven't, but I would like to chat with them about it. The issue with s3:DeleteObjectVersion might have been confusion on my part, but I couldn't find an explanation for the delete marker behavior with DeleteObjects. It's puzzling and concerning.

and if we can rely on this (undocumented?) behavior?

The DeleteObject behavior that I'm seeing is consistent with the official AWS docs, so I think we're on solid ground now.

unless you have remaining todos

The only remaining item was to remove the mention of s3:DeleteObjectVersion from the comments and error message, which I've just done. I think it's ready.

Also, apologies for my delay and short comments, private life is getting in the way.

No worries, and I hope all is well. Thanks for your patience and feedback.


Completion inside double quoted function name at declaration site

This doesn't happen only on declaration site. Whenever backticks are involved auto completion behaves erratic. It often adds extra backticks too, see #4602

But on declarations it shouldn't pop up at all

Looks like declarations always show completion. I don't think that makes sense. In fact:

Completion should not fire for declarations of members or let-bindings

It should fire when typing argument names

It shouldn't fire when declaring generic type arguments

It shouldn't fire when typing compiler directives (it doesn't)

It shouldn't fire when typing namespace, module or type declarations

Other improvements are:

don't double-fire like in this OP, that is, in backticked names, it presently fires on individual words within the name, which, if you aren't careful, often leads to accidentally inserted auto-completion remnants.
if it finds a correct backticked name, don't double the backticks (#4602)
don't list the internal names of active patterns (see one of the screenshots above), they are hardly ever useful

Nice-to-have would be some sense of context. If the completion "knows" it is in a type-specification location, don't list anything but types, if it is in a match expression, don't show keywords or variables etc etc.
At the moment I find myself more often than not hitting Esc. Auto-completion is a wonderful thing, but it should work with you, not against you ;).

don't list the internal names of active patterns (see one of the screenshots above), they are hardly ever useful (this was reported somewhere but I can't find it back)

APs are valid to call as functions, so their presence in the completion list is valid. However, they should be put to the very end of the list.

Nice-to-have would be some sense of context.
There is such a thing as completion context. For example, at attribute application site the list contains only attributes, modules and namespaces.

Completion should not fire for declarations of members or let-bindings

Fixed in master.

It should not fire when typing argument names

Fixed in master.

It shouldn't fire when declaring generic type arguments

On your screenshot you miss ' before T, hence the completion. There is no completion on 'T.

It shouldn't fire when typing namespace, module or type declarations

Cannot reproduce on master.

I've removed active pattern (as values) from completion https://github.com/Microsoft/visualfsharp/pull/4831#issuecomment-396376630

Great work! Did you also get a chance to look at the quoted names? It's your original issue. Also, when you have a quoted name with special characters like dash, dot, comma, colon,  space etc, you currently automatically select the first name from the dropdown list. I think it's best that for quoted names it doesn't fire at all our takes the whole quoted name into consideration (as opposed to only the last part)

Can't reproduce the issue in the OP anymore with VS 2019 GA:

with `` and typing
with ``foo`` (typing out a known identifier with double ticks enclosing the whole decl
with auto completion
with forced completion (ctrl+space)


Latest commits have issues with absl/strings:string_view

Hello. When running with the commit referenced in the documentation (here: https://github.com/google/fuzztest/blob/main/doc/quickstart-bazel.md#set-up-a-bazel-workspace), fuzztest seems to work just fine:
bazel test //fuzz:my_fuzztest
Starting local Bazel server and connecting to it...
WARNING: Streamed test output requested. All tests will be run locally, without sharding, one at a time
DEBUG: Rule 'com_google_fuzztest' indicated that a canonical reproducible form can be obtained by modifying arguments sha256 = "231a36c2d6cdfdfec3ef3b259be46d69eea2d8dc9a1a582b1ac3a9aa68412b70"
INFO: Analyzed target //fuzz:my_fuzztest (62 packages loaded, 927 targets configured).
INFO: Found 1 test target...
(etc...)

When updating to the most recent commit, as recommended:
bazel test //fuzz:my_fuzztest
WARNING: Streamed test output requested. All tests will be run locally, without sharding, one at a time
DEBUG: Rule 'com_google_fuzztest' indicated that a canonical reproducible form can be obtained by modifying arguments sha256 = "3a01226622d2f13afd62b0cb093e175cedc8604c912277115aa3fccccd59a755"
...
ERROR: /home/.cache/bazel/_bazel/2ace5843c8a77dcebc05650431be8550/external/com_google_fuzztest/fuzztest/BUILD:354:11: no such target '@com_google_absl//absl/strings:string_view': target 'string_view' not declared in package 'absl/strings' defined by /home/.cache/bazel/_bazel/2ace5843c8a77dcebc05650431be8550/external/com_google_absl/absl/strings/BUILD.bazel (did you mean 'string_view.h'? Tip: use `query "@com_google_absl//absl/strings:*"` to see all the targets in that package) and referenced by '@com_google_fuzztest//fuzztest:io'
ERROR: Analysis of target '//fuzz:my_fuzztest' failed; build aborted:
INFO: Elapsed time: 2.188s
INFO: 0 processes.
FAILED: Build did NOT complete successfully (53 packages loaded, 325 targets configured)
    currently loading: @com_google_absl//absl
ERROR: Couldn't start the build. Unable to run tests

It appears there may be a typo in the abseil string_view reference?

It always works with the version that fuzztest is using in their own builds:
https://github.com/google/fuzztest/blob/4c3852b5205760af71534e193b9868a3d13b2713/WORKSPACE#L23-L28

Hi all,
I'm using the latest version of absl.
http_archive(
    name = "com_google_absl",
    sha256 = "59d2976af9d6ecf001a81a35749a6e551a335b949d34918cfade07737b9d93c5",
    strip_prefix = "abseil-cpp-20230802.0",
    url = "https://github.com/abseil/abseil-cpp/archive/refs/tags/20230802.0.tar.gz",
)

Unfortunately a couple of fixes are necessary:
End of search list.
In file included from external/com_google_fuzztest/fuzztest/internal/type_support.cc:15:
external/com_google_fuzztest/./fuzztest/internal/type_support.h:31:10: fatal error: 'absl/strings/has_absl_stringify.h' file not found
   31 | #include "absl/strings/has_absl_stringify.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

The path for has_absl_stringify has changed so it is necessary to change it to absl/strings/internal/has_absl_stringify.h so you have to modify type_support.h
Once done if you try again you should have the following error:
In file included from external/com_google_fuzztest/./fuzztest/internal/table_of_recent_compares.h:31:
external/com_google_fuzztest/./fuzztest/internal/type_support.h:90:46: error: no template named 'HasAbslStringify' in namespace 'absl'; did you mean 'absl::strings_internal::HasAbslStringify'?
   90 | inline constexpr bool has_absl_stringify_v = absl::HasAbslStringify<T>::value;
      |                                              ^~~~~~~~~~~~~~~~~~~~~~
      |                                              absl::strings_internal::HasAbslStringify
external/com_google_absl/absl/strings/internal/has_absl_stringify.h:42:8: note: 'absl::strings_internal::HasAbslStringify' declared here
   42 | struct HasAbslStringify : std::false_type {};
      |        ^
1 error generated.

This time add strings_internal:: on line 90 as suggested.
Now you should be able to use bazel test and bazel run
[==========] Running 0 tests from 0 test suites.
[==========] 0 tests from 0 test suites ran. (0 ms total)
[  PASSED  ] 0 tests.
INFO: Found 1 test target...
Target //:alberto up-to-date:
  bazel-bin/alberto
INFO: Elapsed time: 14.652s, Critical Path: 9.12s
INFO: 131 processes: 1 internal, 130 linux-sandbox.
INFO: Build completed successfully, 131 total actions
//:alberto                                                               PASSED in 0.0s

Executed 1 out of 1 test: 1 test passes.
There were tests whose specified size is too big. Use the --test_verbose_timeout_warnings command line option to see which ones these are.
➜  woff2 git:(ccbeb246d2) bazel run --copt=-I./include :alberto
INFO: Analyzed target //:alberto (0 packages loaded, 3 targets configured).
INFO: Found 1 target...
Target //:alberto up-to-date:
  bazel-bin/alberto
INFO: Elapsed time: 0.139s, Critical Path: 0.00s
INFO: 1 process: 1 internal.
INFO: Build completed successfully, 1 total action
INFO: Running command line: external/bazel_tools/tools/test/test-setup.sh ./alberto
exec ${PAGER:-/usr/bin/less} "$0" || exit 1
Executing tests from //:alberto
-----------------------------------------------------------------------------
[==========] Running 0 tests from 0 test suites.
[==========] 0 tests from 0 test suites ran. (0 ms total)
[  PASSED  ] 0 tests.
➜  woff2 git:(ccbeb246d2)

Hi all,
I'm using the latest version of absl.
http_archive(
    name = "com_google_absl",
    sha256 = "59d2976af9d6ecf001a81a35749a6e551a335b949d34918cfade07737b9d93c5",
    strip_prefix = "abseil-cpp-20230802.0",
    url = "https://github.com/abseil/abseil-cpp/archive/refs/tags/20230802.0.tar.gz",
)

Unfortunately a couple of fixes are necessary:
End of search list.
In file included from external/com_google_fuzztest/fuzztest/internal/type_support.cc:15:
external/com_google_fuzztest/./fuzztest/internal/type_support.h:31:10: fatal error: 'absl/strings/has_absl_stringify.h' file not found
   31 | #include "absl/strings/has_absl_stringify.h"
      |          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 error generated.

The path for has_absl_stringify has changed so it is necessary to change it to absl/strings/internal/has_absl_stringify.h so you have to modify type_support.h
Once done if you try again you should have the following error:
In file included from external/com_google_fuzztest/./fuzztest/internal/table_of_recent_compares.h:31:
external/com_google_fuzztest/./fuzztest/internal/type_support.h:90:46: error: no template named 'HasAbslStringify' in namespace 'absl'; did you mean 'absl::strings_internal::HasAbslStringify'?
   90 | inline constexpr bool has_absl_stringify_v = absl::HasAbslStringify<T>::value;
      |                                              ^~~~~~~~~~~~~~~~~~~~~~
      |                                              absl::strings_internal::HasAbslStringify
external/com_google_absl/absl/strings/internal/has_absl_stringify.h:42:8: note: 'absl::strings_internal::HasAbslStringify' declared here
   42 | struct HasAbslStringify : std::false_type {};
      |        ^
1 error generated.

This time add strings_internal:: on line 90 as suggested.
Now you should be able to use bazel test and bazel run
[==========] Running 0 tests from 0 test suites.
[==========] 0 tests from 0 test suites ran. (0 ms total)
[  PASSED  ] 0 tests.
INFO: Found 1 test target...
Target //:alberto up-to-date:
  bazel-bin/alberto
INFO: Elapsed time: 14.652s, Critical Path: 9.12s
INFO: 131 processes: 1 internal, 130 linux-sandbox.
INFO: Build completed successfully, 131 total actions
//:alberto                                                               PASSED in 0.0s

Executed 1 out of 1 test: 1 test passes.
There were tests whose specified size is too big. Use the --test_verbose_timeout_warnings command line option to see which ones these are.
➜  woff2 git:(ccbeb246d2) bazel run --copt=-I./include :alberto
INFO: Analyzed target //:alberto (0 packages loaded, 3 targets configured).
INFO: Found 1 target...
Target //:alberto up-to-date:
  bazel-bin/alberto
INFO: Elapsed time: 0.139s, Critical Path: 0.00s
INFO: 1 process: 1 internal.
INFO: Build completed successfully, 1 total action
INFO: Running command line: external/bazel_tools/tools/test/test-setup.sh ./alberto
exec ${PAGER:-/usr/bin/less} "$0" || exit 1
Executing tests from //:alberto
-----------------------------------------------------------------------------
[==========] Running 0 tests from 0 test suites.
[==========] 0 tests from 0 test suites ran. (0 ms total)
[  PASSED  ] 0 tests.
➜  woff2 git:(ccbeb246d2)

@thealberto Don't ask me, I'm just another user :joy:
That being said, as a reviewer I would comment that internal headers and APIs must not be used. Thus, for a proper solution, somebody needs to figure out how HasAbslStringify should be replaced without accessing internals.
Looking for a solution, I found that while you are using the latest release from Sep 18, 2023, fuzztest's main branch actually requires https://github.com/abseil/abseil-cpp/commit/fad946221cec37175e762c399760f54b9de9a9fa from Dec 7, 2023 : At the time of writing I found absl/strings/has_absl_stringify.h in abseil's master branch:
// `HasAbslStringify<T>` detects if type `T` supports the `AbslStringify()`
// customization point (see
// https://abseil.io/docs/cpp/guides/format#abslstringify for the
// documentation).
//
// Note that there are types that can be `StrCat`-ed that do not use the
// `AbslStringify` customization point (for example, `int`).

template <typename T, typename = void>
struct HasAbslStringify : std::false_type {};

template <typename T>
struct HasAbslStringify<
    T, std::enable_if_t<std::is_void<decltype(AbslStringify(
           std::declval<strings_internal::UnimplementedSink&>(),
           std::declval<const T&>()))>::value>> : std::true_type {};


[k8s] Fix panic in WaitUntilDeploymentAvailable

Description
Fixes #1329
The func (err DeploymentNotAvailable) Error() method should not assume that Status.Conditions[0] is always valid for the Deployment.
TODOs
Read the Gruntwork contribution guidelines.

[x] Update the docs. N/A
[x] Run the relevant tests successfully, including pre-commit checks.
[x] Ensure any 3rd party code adheres with our license policy or delete this line if its not applicable. N/A
[x] Include release notes. If this PR is backward incompatible, include a migration guide.

Release Notes (draft)
Fixed panic in WaitUntilDeploymentAvailable in the k8s module.
Migration Guide
N/A

Relevant tests:
$ go test -v -run=.*DeploymentAvailable.* --tags=kubeall ./modules/k8s/...
=== RUN   TestWaitUntilDeploymentAvailable
=== PAUSE TestWaitUntilDeploymentAvailable
=== RUN   TestTestIsDeploymentAvailable
=== RUN   TestTestIsDeploymentAvailable/TestIsDeploymentAvailableWithProgressingNewReplicaSetAvailable
=== PAUSE TestTestIsDeploymentAvailable/TestIsDeploymentAvailableWithProgressingNewReplicaSetAvailable
=== RUN   TestTestIsDeploymentAvailable/TestIsDeploymentAvailableWithoutProgressingNewReplicaSetAvailable
=== PAUSE TestTestIsDeploymentAvailable/TestIsDeploymentAvailableWithoutProgressingNewReplicaSetAvailable
=== CONT  TestTestIsDeploymentAvailable/TestIsDeploymentAvailableWithProgressingNewReplicaSetAvailable
=== CONT  TestTestIsDeploymentAvailable/TestIsDeploymentAvailableWithoutProgressingNewReplicaSetAvailable
--- PASS: TestTestIsDeploymentAvailable (0.00s)
    --- PASS: TestTestIsDeploymentAvailable/TestIsDeploymentAvailableWithoutProgressingNewReplicaSetAvailable (0.00s)
    --- PASS: TestTestIsDeploymentAvailable/TestIsDeploymentAvailableWithProgressingNewReplicaSetAvailable (0.00s)
=== CONT  TestWaitUntilDeploymentAvailable
TestWaitUntilDeploymentAvailable 2023-08-09T14:27:00-07:00 logger.go:66: Running command kubectl with args [--namespace ph2leb apply -f /var/folders/9q/0_7t6cs557d_v8mfkhcw5r780000gp/T/TestWaitUntilDeploymentAvailable1824699040]
TestWaitUntilDeploymentAvailable 2023-08-09T14:27:01-07:00 logger.go:66: namespace/ph2leb created
TestWaitUntilDeploymentAvailable 2023-08-09T14:27:01-07:00 logger.go:66: deployment.apps/nginx-deployment created
TestWaitUntilDeploymentAvailable 2023-08-09T14:27:01-07:00 retry.go:91: Wait for deployment nginx-deployment to be provisioned.
TestWaitUntilDeploymentAvailable 2023-08-09T14:27:01-07:00 client.go:42: Configuring Kubernetes client using config file /Users/abas/vmware/antrea/test/e2e/infra/vagrant/playbook/kube/config with context
TestWaitUntilDeploymentAvailable 2023-08-09T14:27:01-07:00 retry.go:103: Wait for deployment nginx-deployment to be provisioned. returned an error: Deployment nginx-deployment is not available as 'Progressing' condition indicates that the Deployment is not complete, status: True, reason: NewReplicaSetCreated, message: Created new replica set "nginx-deployment-dc56b9db4". Sleeping for 1s and will try again.
TestWaitUntilDeploymentAvailable 2023-08-09T14:27:02-07:00 retry.go:91: Wait for deployment nginx-deployment to be provisioned.
TestWaitUntilDeploymentAvailable 2023-08-09T14:27:02-07:00 client.go:42: Configuring Kubernetes client using config file /Users/abas/vmware/antrea/test/e2e/infra/vagrant/playbook/kube/config with context
TestWaitUntilDeploymentAvailable 2023-08-09T14:27:02-07:00 retry.go:103: Wait for deployment nginx-deployment to be provisioned. returned an error: Deployment nginx-deployment is not available as 'Progressing' condition indicates that the Deployment is not complete, status: True, reason: ReplicaSetUpdated, message: ReplicaSet "nginx-deployment-dc56b9db4" is progressing.. Sleeping for 1s and will try again.
TestWaitUntilDeploymentAvailable 2023-08-09T14:27:03-07:00 retry.go:91: Wait for deployment nginx-deployment to be provisioned.
TestWaitUntilDeploymentAvailable 2023-08-09T14:27:03-07:00 client.go:42: Configuring Kubernetes client using config file /Users/abas/vmware/antrea/test/e2e/infra/vagrant/playbook/kube/config with context
TestWaitUntilDeploymentAvailable 2023-08-09T14:27:03-07:00 deployment.go:95: Deployment is now available
TestWaitUntilDeploymentAvailable 2023-08-09T14:27:03-07:00 logger.go:66: Running command kubectl with args [--namespace ph2leb delete -f /var/folders/9q/0_7t6cs557d_v8mfkhcw5r780000gp/T/TestWaitUntilDeploymentAvailable57124874]
TestWaitUntilDeploymentAvailable 2023-08-09T14:27:03-07:00 logger.go:66: Warning: deleting cluster-scoped resources, not scoped to the provided namespace
TestWaitUntilDeploymentAvailable 2023-08-09T14:27:03-07:00 logger.go:66: namespace "ph2leb" deleted
TestWaitUntilDeploymentAvailable 2023-08-09T14:27:03-07:00 logger.go:66: deployment.apps "nginx-deployment" deleted
--- PASS: TestWaitUntilDeploymentAvailable (7.74s)
PASS
ok  	github.com/gruntwork-io/terratest/modules/k8s	8.170s

Pre-commit hooks:
goimports................................................................Passed
Terraform fmt........................................(no files to check)Skipped
test-interfaces-used.....................................................Passed


Show background as key pressed

Hi, how can I show a circle background for only the pressed key (as shown in Readme second picture)? I used the keypadButtonBackgroundDrawable attribute but it shows constant background for all buttons.

Use Selector Drawable like this.....

<item android:state_pressed="true">
    <shape android:shape="oval">
        <solid android:color="#9925A9F7"/>
    </shape>
</item>

<item android:drawable="@android:color/transparent"/>

Hi, how can I show a circle background for only the pressed key (as shown in Readme second picture)? I used the keypadButtonBackgroundDrawable attribute but it shows constant background for all buttons.

Use Selector Drawable like this..... as keypadButtonBackgroundDrawable

<item android:state_pressed="true">
    <shape android:shape="oval">
        <solid android:color="#9925A9F7"/>
    </shape>
</item>

<item android:drawable="@android:color/transparent"/>

Hi, how can I show a circle background for only the pressed key (as shown in Readme second picture)? I used the keypadButtonBackgroundDrawable attribute but it shows constant background for all buttons.

Use Selector Drawable like this..... as keypadButtonBackgroundDrawable
<item android:state_pressed="true">
    <shape android:shape="oval">
        <solid android:color="#9925A9F7"/>
    </shape>
</item>

<item android:drawable="@android:color/transparent"/>

thanks, it was helpful


Apply-PnPTenantTemplate : Insufficient privileges to complete the operation

In step 2 of the deployment I get "Insufficient privileges to complete the operation" when running the Apply-PnPTenantTemplate command. Do you need to be a Global Tenant Admin to run this step or should I be able to run this as a SharePoint Administrator?

Hi @jathorpe,
Can you share the output of Get-PnPException after you've received the error?
In general SharePoint Tenant admin should be sufficient to install the solution. Do note that you need to have a tenant app catalog already setup. Can you open the SP admin center, click on "Apps" and then on "App Catalog". If you end up on the "App Catalog Site" then this is done, if not you'll be asked to setup the app catalog.
Before retrying ensure you've fully deleted the old site:

Delete https://yourtenant.sharepoint.com/sites/modernizationcenter from the UI
Use PnP PowerShell and call  Clear-PnPTenantRecycleBinItem -Url https://yourtenant.sharepoint.com/sites/modernizationcenter to clear the site from the recycle bin
Also please do a git pull (or download via zip) as I've just updated the .pnp file to include a newer version that also works on sub sites

Let me know how it goes.

I followed the steps you outlined and verified the App Catalog. I download the updated pnp files and when I ran the commands I got the same error as before.
I checked the App Catalog and both sharepointpnp-pagetransformation-central and sharepointpnp-pagetransformation-client were added to the App Catalog
The modernizationcenter was not created. It may not make a difference but one thing I noticed is that in our environment the default location for Communication sites is the "teams" managed path and not the "sites" managed path.

Here is the exception I am getting. I am a SharePoint Administrator for the tenant but not a Global Admin. I am running SharePointPnPPowerShellOnline 3.4.1812.2
Apply-PnPTenantTemplate : Insufficient privileges to complete the operation.
At line:9 char:1

Apply-PnPTenantTemplate -Path .\modernization.pnp -Parameters @{"Azur ...

  + CategoryInfo          : WriteError: (:) [Apply-PnPTenantTemplate], ServerException
  + FullyQualifiedErrorId : EXCEPTION,SharePointPnP.PowerShell.Commands.Provisioning.Tenant.ApplyTenantTemplate

Hey @jathorpe ,
Thanks for the testing and feedback, really appreciated!
I've logged a bug to add support for other site collection url's besides /sites/modernizationcenter (see #19) and will add this the beta release. In the meanwhile I would ask you if you can temporarily configure /sites instead of /teams and then try the installation again. If that's not an option I understand, you'll then have to wait for beta version January

@jathorpe
Did check the needed changes to support any site collection url...and this appeared to be minimal and I already implemented it. Can you check the updated deployment guide and take note of the "Notes" that describe what's needed to deploy in a different site collection. Essentially it comes down to specifying an extra parameter in the Apply-PnPTenantTemplate cmdlet run.

@jansenbe ,
I downloaded the latest version of the code and ran the PowerShell with the new parameter and it still failed.
Apply-PnPTenantTemplate -Path .\modernization.pnp -Parameters @{"CenterUrl"="/teams/modernizationcenter";"AzureAppID"="removed";"AzureFunction"="removed"}
Apply-PnPTenantTemplate : Insufficient privileges to complete the operation.
At line:6 char:1

Apply-PnPTenantTemplate -Path .\modernization.pnp -Parameters @{"Cent ...

  + CategoryInfo          : WriteError: (:) [Apply-PnPTenantTemplate], ServerException
  + FullyQualifiedErrorId : EXCEPTION,SharePointPnP.PowerShell.Commands.Provisioning.Tenant.ApplyTenantTemplate

@jathorpe
So clearly something goes wrong with the site collection creation step. Can you run below PowerShell to test if you can programmatically create a communication site:
 New-PnPSite -Type CommunicationSite -Title "test" -Url "https://yourtenantname.sharepoint.com/sites/todeletedemo"

If that worked you can delete the site again, if that failed please run Get-PnPException as that will give me the stracktrace of the error.

@jansenbe ,
Test 2 ran fine and created the communication site in the "/sites/" managed path. Test 1 didn't go as well. The API Management Page has nothing approved or pending but has two errors:

[HTTP]:500 -  [CorrelationId]:0bdead9e-d0c5-7000-9a0c-ee9d8828bd5b [Version]:<IP_ADDRESS>05 - Insufficient privileges to complete the operation.
[HTTP]:500 -  [CorrelationId]:0bdead9e-80df-7000-9990-8ad53c69416a [Version]:<IP_ADDRESS>05 - Insufficient privileges to complete the operation.

@jansenbe ,
I am not sure if this makes a difference but every time I go to the API Management page I get the message "***Access to Azure Active Directory resources using the SharePoint Framework will be available soon."

@jathorpe : think we've found the root cause of your issues. Can you try below guidance.
From https://github.com/SharePoint/sp-dev-docs/issues/2472:
OK, latest updates on this. We've tracked down the root cause, and it's a bit strange.
Some tenants have the Site Collection Admin for the tenant admin site (mytenant-admin.sharepoint.com) set incorrectly. It should be "Company Administrator", but it winds up with a weird account like YLO001_frm123... When you go to the admin API page, we try and update a property on the web of the admin site collection, but the user doesn't have permissions, and so it fails.
We need to figure out why some of these sites are incorrectly set up, but in the meantime, here is a workaround.
1 - Go to the user page in the Microsoft 365 admin center (https://admin.microsoft.com/adminportal, then select Users->Active Users)
2 - Click Add A User
3 - complete the information, and make sure that you set the License to be "SharePoint Online For Developer" and set the Role to be "Customized Administrator" with "SharePoint Administrator" selected.
4 - Click "Add".
5 - This might take a while....
6 - Log in to the SP admin center as this new users (tenant-admin.sharepoint.com)
7 - Go to _layouts/15/settings.aspx and select "Site Collection Administrators" under Users and Permissions
8 - delete the incorrect user (hit the X, even if the UX is spinning)
9 - In the little text box, enter "Company Administrator", select the Company Administrator when it resolves, then click "OK". Note - at this point you may get an access denied. Ignore it.
10 - Now log back on with the tenant admin, and hit the API page.
11 - If this is all working, you can delete the user you added.

@jansenbe ,
I am a little confused by the instructions. It sounds like I am supposed to create a dummy user with the SharePoint Admin role and a "SharePoint Online For Developers" license. Our tenant is licensed with E5, so the only option there is "SharePoint Online (Plan 2)".
Also what account am I deleting in the "Site Collection Administrators"?

Can you show me what you currently have as administrators in your tenant admin site? To do so go to https://yourtenantname-admin.sharepoint.com/_layouts/15/mngsiteadmin.aspx and check

I have attached a screenshot. I groups are in the screenshot but I did blur one user name but not mine name for privacy reasons.

This looks good, so the problem is not what was mentioned in the thread I shared. Can you open an issue in https://github.com/SharePoint/sp-dev-docs/issues for this? In parallel, I'll see what more I can find out.
Is there anything specifically restricted in your Azure AD?

Our Security Team has locked down App Registration in AAD, so only someone on their team can register an app. So I had one of our Global Admins run Step 1 of the set-up process which included clicking the consent link when the Provision-ModernizationFramework.ps1 finished.
Then I started with Step 2. I have the Tenant SharePoint Admin role, so we thought I should be able to finish the rest of the steps in deploying the modernization tool.

Well, there's a SharePoint App in Azure AD that's being updated from the SharePoint Management UI and seems like the listed accounts (including company admin, SharePoint admin) don't have the proper permissions to this. Would recommend checking back with them on see if this above rings any bells: maybe they can open the App created by SharePoint for modifications?
The app I'm talking about can be found via going to AAD portal (https://aad.portal.azure.com), clicking on "App registrations", typing "SharePoint" in the filter combined with selecting "All Apps": app to see is named SharePoint Online Client Extensibility Web Application Principal as shown in the screenshot below:

Without this app any SharePoint Framework customization making calls to Azure AD secured resources will fail.

I don't see the "SharePoint Online Client Extensibility Web Application Principal" app listed. I do see the "SharePointPnP.Modernization" app listed. Does this mean something went wrong with Step 1 or we missed a step?

All environments should have the "SharePoint Online Client Extensibility Web Application Principal"  app installed, it's a "system" app...the fact that you don't have it explains the issues. Can you ask your Azure AD admins if they've deleted it? If they could restore from the recycle bin, if not please open a support ticket with Microsoft support.

@jansenbe ,
I ran Get-AzureADDeletedApplication and the app isn't list there. Is it possible it was been deployed to our tenant?

@jansenbe , we have made some progress. I had our Global Admin go to the SharePoint API Management page and then the "SharePoint Online Client Extensibility Web Application Principal" app was deployed. I was able to then run step 2 of the deployment without an error.
I used the modernizationcenter to enable the "Create modern version" in a test site collection. Then I went to a sub site in the test site collection and used the  "Create modern version" on a web part page. The screen redirects to the modernize page in the modernizationcenter and displays the message "Busy generating a modern version of Test-WP-Page-Convert.aspx...".  The issue now is that it just sits there on that page and nothing is happening.

I tried the Powershell "ConvertTo-PnPClientSidePage" command and that worked, so the issue appears to be related to the "Create modern version" action in the ribbon.

Hi @jathorpe ,

When the page is "hanging" on "Busy generating a modern version" can you press F12 and go the "console" view to see if there are errors (typically marked in red text)?
I did fix a bug in page transformation on sub sites (https://github.com/SharePoint/sp-dev-modernization/commit/c08bbe729f17ca2690cd67e3585c88209174c02d). Not sure if that's hitting you, but if you can try from the root web of a site collection we can rule that out

I tried the root site and got  the same error. I tried both Edge and Chrome and I see that the errors are a little different.
In Chrome I get the Busy message and the screenshot below shows the F12 Console.

In Edge I get the message "Not all parameters are configured, can't execute. Please run the setup steps." and the screenshot below shows the F12 Console.

I also ran Get-PnPStorageEntity for all the Modernization keys and they all seem to have the correct value.

The fact that the Chrome screenshot shows the Azure function url means that the storage entities can be read. You've double checked them and they seem to be ok. Can you go the API management page in the modern SharePoint admin center (https://yourtenantname-admin.sharepoint.com/_layouts/15/online/AdminHome.aspx#/webApiPermissionManagement) and verify that you see a tenant-wide API approved with name SharePointPnP.Modernization?

FYI: I'll be boarding a plane soon, will be offline for a couple of hours.

I don't see any APIs (approved or pending). I asked our Global Admin who went in this morning and approved it if there was any issues and he said there were two entries with the same name that were pending approval and he approved one and rejected the other. I wonder if this is the issue. How can we reset it so that it asks for the approval again?

If he still sees the approved one then it's OK, if he doesn't then can you ask him to use below PnP PowerShell command:
Grant-PnPTenantServicePrincipalPermission -Scope "user_impersonation" -Resource "SharePointPnP.Modernization"

I ran the PowerShell and received an error. The app is now showing up on the API Management page under Pending Approval and when I try to approve it I get the same error message that I saw running the PowerShell. There still isn't anything under Approved on the API Management Page.
[HTTP]:400 -  [CorrelationId]:8162b29e-b0e5-7000-9990-84726337ad6c [Version]:<IP_ADDRESS>05 - An OAuth permission with the resource SharePointPnP.Modernization and scope user_impersonation already exists.
Parameter name: permissionRequest

Your tenant admin has to approve it, due to your setup all update operations towards Azure AD seem to be blocked from a regular SharePoint Admin.

I had our global tenant admin try and approve it and got the same error.

hmm...I think it's best to fully clean the SharePoint side of the setup and start over by having the global admin run the setup.
To fully remove the SharePoint side you need to take these steps:

Remove the UI integration for the site collections you installed it into (using the web part on the modernization center home page)
Remove the site: Remove-PnPTenantSite -Url https//yourtenant.sharepoint.com/sites/modernizationcenter -SkipRecycleBin
Remove the apps installed in the app catalog (sharepointpnp-pagetransformation-central.sppkg and sharepointpnp-pagetransformation-client.sppkg), also remove them from the recycle bins
Go to Azure AD and lookup the SharePoint Online Client Extensibility Web Application Principal application, click on SharePoint Online Client Extensibility Web Application Principal, click on permissions and verify that there's no "SharePointPnP.Modernization" permission anymore. If there is then remove it

Once everything has been removed have the global admin execute the SharePoint setup part again:
Connect-PnPOnline -Url https://yourtenant.sharepoint.com

# Update AzureAppID and AzureFunction before running this
Apply-PnPTenantTemplate -Path .\modernization.pnp -Parameters @{"AzureAppID"="Application id of the SharePointPnP.Modernization app";"AzureFunction"="https://your_function_host.azurewebsites.net"}

Closing this issue due to it being stale for a long time. Feel free to open a new one if this is still relevant.


server (ticdc): add timeout for statusServer.

What problem does this PR solve?

Issue Number: close #5303
What is changed and how it works?
Invesgation Result:

The requests sent by the client are not closed properly, resulting in http.server connection that cannot be closed and keeps goroutine growing.
adminClient  is not closed properly when NewKafkaSaramaSink is failed, which can lead to goruotine leaks.

Waht is changed:

Add ReadTimeout and WriteTimeout for statusServer to limit a connection maxmum alive time.
Add maxConnection for listener of statusServer to limit the maxmum concurrent connections.
Close  sarama adminClient when NewKafkaSaramaSink return with error to avoid goroutine leaks.

Check List
Tests

Manual test (add detailed scripts or steps below)

Code changes
Side effects
Related changes
Release note
Fix a bug that may causes goroutine leak in http server.

/integration-tests

/run-integration-tests

/merge

/run-verify

/run-verify


401 Unauthorized when loading study list

Bug Report
Description
A project I am working on is using the Google Cloud Healthcare API, as well as Google OAuth, in OHIF. On the latest version, specifically after the pull request #1575 into master, I am able to select a Dicom Store, however when I have chosen a store and the viewer attempts to load the study list, I get a 401 error.

The error subsides when reverting to prior commits.
What steps can we follow to reproduce the bug?

Create a valid google.js config file
Run the app using

APP_CONFIG=config/google.js yarn run dev

Run through the process of selecting a dicom store

That's really odd. Do you notice anything different between the network requests before and after? (Do you see the same headers set)
Does the auth complete and load the token into storage after hitting the callback route?

Hi @dannyrb,
In both cases, the auth completes and an access token is loaded into localstorage after hitting the callback route, however the authorization header is missing from the erroneous request.
The response from this request also points this out.

I am facing the same issue as described over here https://github.com/OHIF/Viewers/issues/1597.
The ajax call request to get the the dicom frame doesnt have the authorization header as shown in the the screen shot at the bottom of my question.

Have you identified where the AJAX request for the frame is originating from? If it's the DICOMWeb client, it should be using the appropriate headers. If you can find what's initiating the request, and where it's headers should be set (why they're not). I can create a more clear cut fix issue for this.

Using this ticket as the tracking issue for: https://github.com/OHIF/Viewers/issues/1597

This issue should be resolved. Please don't hesitate to open a new issue if you're still experiencing problems.

Sorry I have been away for a while to focus on University however I can confirm after updating our repos today that the issue has been resolved. Thanks @dannyrb 😄

Hi @dannyrb , would you please take a look at https://github.com/OHIF/Viewers/issues/1736?
I think is related. still having 401 when trying to fetch images.
thanks in advance.!


WIP: 83 bug with link in for loops

Candidate regression test for #83
Could not reproduce the bug on 4.0.0 release candidate.

Coverage increased (+9.4%) to 88.571% when pulling 0cc8f0b4ed0e48c4c56f3e67f40d1cb3ab0013e2 on 83-bug-with-LINK-in-FOR-loops into f29675efdcb4f017aab6aac9166ee91dc6dd9a63 on master.


Puppeteer not detecting successful response

Puppeteer version: 1.20.0
Platform / OS version: MacOS Catalina
Node.js version: v12.13.0

Please include code that reproduces the issue.
 await page.goto('https://example.com/login/')
 await page.type('#email', 'email')
 await page.type('#pass', 'password')
 await page.click('#submit')
 await page.waitForResponse('https://example.com/loginPost/')

What is the expected result?
Submit login details and wait for the response from /loginPost before continuing.
What happens instead?
Login details are submitted and login is successful, but the script hangs at line 5 for 30 seconds before giving me a promise rejection
I have already made sure that I have the correct response url but I cant seem to get this to work.

I think that's a race condition. You could try something like this:
await page.goto('https://example.com/login/')
const responsePromise = page.waitForResponse('https://example.com/loginPost/')
await page.type('#email', 'email')
await page.type('#pass', 'password')
await page.click('#submit')
await responsePromise

I think that's a race condition. You could try something like this:
await page.goto('https://example.com/login/')
const responsePromise = page.waitForResponse('https://example.com/loginPost/')
await page.type('#email', 'email')
await page.type('#pass', 'password')
await page.click('#submit')
await responsePromise

This fixed my issue, thanks


Fix crash when device name is null and fix dart 2.15

Thanks for tackling this issue and for making it a non-flutter project (i.e. it could also work in a regular web app which is good for testing too).
Sorry I just wanted to do a simple fix but I ended up fixing all dart lints as recommended...

Thanks for contributing. I'll look at it once I have time.
At least with a quick glance it looks good!


Fix PHP 8.4 Deprecations

The project is generating deprecation warnings with PHP 8.4. Its about implicit nullable parameters.
See here: https://php.watch/versions/8.4/implicitly-marking-parameter-type-nullable-deprecated
The fix also includes a Gitlab CI workflow for testing all supported PHP-Versions.

Thanks @sven-communitales for your contribution.
Everything seems to be ok !


Troubles building e2Studio/AFBR_S50_ExplorerApp_RA4M2

Following the instructions here: https://broadcom.github.io/AFBR-S50-API/e2studio.html
I installed the latest version v5.4.0 of FSP with e2Studio 2024-04 from here: https://github.com/renesas/fsp/releases
and imported the e2Studio/AFBR_S50_ExplorerApp_RA4M2 project without copying. I did this on both Windows 11 and macOS 14.3 but the same issues described below occur.
The first issue, strangely enough is that the build process overwrites the ra_gen/bsp_clock_cfg.h file with an incomplete version which then causes the build to fail. So I restored the correct contents from git, then set that file to be read-only. The build then goes almost to completion, but fails with the following linker error:
Building target: AFBR_S50_ExplorerApp_RA4M2.elf
c:/program files (x86)/gnu arm embedded toolchain/10 2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: cannot open linker script file memory_regions.ld: No such file or directory
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:116: AFBR_S50_ExplorerApp_RA4M2.elf] Error 1
"make -r -j20 all" terminated with exit code 2. Build might be incomplete.

(The same error occurs on mac, only the toolchain paths are different, of course)
Supposedly the memory_regions.ld is supposed to be generated by the build and placed in the target build dir before the link step, but that doesn't appear to be happening here. Has anyone else seen this, or reproduced this problem on their systems? Is there a known version of BSP with e2studio that works correctly? Thanks in advance!
Here is the complete build log for reference:
Extracting support files...
18:11:44 **** Build of configuration DebugUART for project AFBR_S50_ExplorerApp_RA4M2 ****
make -r -j20 all
Building file: ../src/hal_entry.c
Building file: ../src/r_usb_pcdc_descriptor.c
Building file: ../ra_gen/common_data.c
Building file: ../ra_gen/hal_data.c
Building file: ../ra_gen/pin_data.c
Building file: ../ra_gen/vector_data.c
Building file: ../ra/fsp/src/rm_vee_flash/rm_vee_flash.c
Building file: ../ra/fsp/src/r_usb_basic/src/hw/r_usb_creg_abs.c
Building file: ../ra/fsp/src/r_usb_basic/src/hw/r_usb_creg_access.c
Building file: ../ra/fsp/src/r_usb_basic/src/hw/r_usb_dma.c
Building file: ../ra/fsp/src/r_usb_basic/src/hw/r_usb_hostelectrical.c
Building file: ../ra/fsp/src/r_usb_basic/src/hw/r_usb_hreg_abs.c
Building file: ../ra/fsp/src/r_usb_basic/src/hw/r_usb_hreg_access.c
Building file: ../ra/fsp/src/r_usb_basic/src/hw/r_usb_mcu.c
Building file: ../ra/fsp/src/r_usb_basic/src/hw/r_usb_preg_abs.c
Building file: ../ra/fsp/src/r_usb_basic/src/hw/r_usb_preg_access.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_cdataio.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_clibusbip.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_cstd_rtos.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_hbc.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_hdriver.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_hcontrolrw.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_hhubsys.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_hintfifo.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_hinthandler_usbip0.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_hinthandler_usbip1.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_hlibusbip.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_hmanager.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_hscheduler.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_hsignal.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_hstdfunction.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_pbc.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_pcontrolrw.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_pdriver.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_pintfifo.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_pinthandler_usbip0.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_plibusbip.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_psignal.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_pstdfunction.c
Building file: ../ra/fsp/src/r_usb_basic/src/driver/r_usb_pstdrequest.c
Building file: ../ra/fsp/src/r_usb_basic/r_usb_basic.c
Building file: ../ra/fsp/src/r_spi/r_spi.c
Building file: ../ra/fsp/src/r_icu/r_icu.c
Building file: ../ra/fsp/src/r_gpt/r_gpt.c
Building file: ../ra/fsp/src/r_sci_uart/r_sci_uart.c
Building file: ../ra/fsp/src/r_ioport/r_ioport.c
Building file: ../ra/fsp/src/r_flash_hp/r_flash_hp.c
Building file: ../ra/fsp/src/r_dtc/r_dtc.c
Building file: ../ra/fsp/src/r_can/r_can.c
Building file: ../ra/fsp/src/bsp/mcu/all/bsp_clocks.c
Building file: ../ra/fsp/src/bsp/mcu/all/bsp_common.c
Building file: ../ra/fsp/src/bsp/mcu/all/bsp_delay.c
Building file: ../ra/fsp/src/bsp/mcu/all/bsp_group_irq.c
Building file: ../ra/fsp/src/bsp/mcu/all/bsp_guard.c
Building file: ../ra/fsp/src/bsp/mcu/all/bsp_io.c
Building file: ../ra/fsp/src/bsp/mcu/all/bsp_irq.c
Building file: ../ra/fsp/src/bsp/mcu/all/bsp_register_protection.c
Building file: ../ra/fsp/src/bsp/mcu/all/bsp_rom_registers.c
Building file: ../ra/fsp/src/bsp/mcu/all/bsp_sbrk.c
Building file: ../ra/fsp/src/bsp/mcu/all/bsp_security.c
Building file: ../ra/fsp/src/bsp/cmsis/Device/RENESAS/Source/startup.c
Building file: ../ra/fsp/src/bsp/cmsis/Device/RENESAS/Source/system.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/debug.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/Platform/Renesas_RA4M2/usb/usb_sci.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/Platform/Renesas_RA4M2/driver/bsp.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/Platform/Renesas_RA4M2/driver/flash.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/Platform/Renesas_RA4M2/driver/irq.c
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c: In function 'get_sign':
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c:178:30: warning: conversion from 'double_uint_t' {aka 'long long unsigned int'} to 'int' may change value [-Wconversion]
  178 |   return get_bit_access(x).U >> (DOUBLE_SIZE_IN_BITS - 1);
      |          ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c: In function 'get_components':
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c:431:34: warning: conversion from 'int_fast64_t' {aka 'long long int'} to 'double' may change value [-Wconversion]
  431 |   double remainder = (abs_number - number_.integral) * powers_of_10[precision];
      |                                  ^
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c:444:22: warning: comparing floating-point with '==' or '!=' is unsafe [-Wfloat-equal]
  444 |   else if (remainder == 0.5) {
      |                      ^~
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c: At top level:
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c:467:8: warning: no previous declaration for 'apply_scaling' [-Wmissing-declarations]
  467 | double apply_scaling(double num, struct scaling_factor normalization)
      |        ^~~~~~~~~~~~~
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c:472:8: warning: no previous declaration for 'unapply_scaling' [-Wmissing-declarations]
  472 | double unapply_scaling(double normalized, struct scaling_factor normalization)
      |        ^~~~~~~~~~~~~~~
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c:477:23: warning: no previous declaration for 'update_normalization' [-Wmissing-declarations]
  477 | struct scaling_factor update_normalization(struct scaling_factor sf, double extra_multiplicative_factor)
      |                       ^~~~~~~~~~~~~~~~~~~~
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c: In function 'sprint_floating_point':
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c:768:13: warning: comparing floating-point with '==' or '!=' is unsafe [-Wfloat-equal]
  768 |   if (value != value)
      |             ^~
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/Platform/Renesas_RA4M2/driver/nvm.c
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c: In function 'get_bit_access':
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c:168:38: warning: function returns an aggregate [-Waggregate-return]
  168 | static inline double_with_bit_access get_bit_access(double x)
      |                                      ^~~~~~~~~~~~~~
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c: In function 'get_sign':
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c:178:10: warning: function call has aggregate value [-Waggregate-return]
  178 |   return get_bit_access(x).U >> (DOUBLE_SIZE_IN_BITS - 1);
      |          ^~~~~~~~~~~~~~~~~
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/Platform/Renesas_RA4M2/driver/s2pi.c
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c: In function 'get_components':
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c:425:33: warning: function returns an aggregate [-Waggregate-return]
  425 | static struct double_components get_components(double number, unsigned int precision)
      |                                 ^~~~~~~~~~~~~~
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c: In function 'update_normalization':
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c:477:23: warning: function returns an aggregate [-Waggregate-return]
  477 | struct scaling_factor update_normalization(struct scaling_factor sf, double extra_multiplicative_factor)
      |                       ^~~~~~~~~~~~~~~~~~~~
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c:485:23: warning: function call has aggregate value [-Waggregate-return]
  485 |     int factor_exp2 = get_exp2(get_bit_access(sf.raw_factor));
      |                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c:486:29: warning: function call has aggregate value [-Waggregate-return]
  486 |     int extra_factor_exp2 = get_exp2(get_bit_access(extra_multiplicative_factor));
      |                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c: In function 'sprint_decimal_number':
C:/Users/jesse/src/AFBR-S50-API/Sources/Utility/printf/printf.c:629:37: warning: function call has aggregate value [-Waggregate-return]
  629 |   struct double_components value_ = get_components(number, precision);
      |                                     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/Platform/Renesas_RA4M2/driver/timer.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/Platform/Renesas_RA4M2/driver/uart.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/Platform/Renesas_RA4M2/board/board.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/tasks/task_profiler.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/tasks/task_scheduler.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/sci/sci.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/sci/sci_cmd.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/sci/sci_crc8.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/sci/sci_datalink.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/sci/sci_frame.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/sci/sci_handshaking.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/sci/sci_log.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/core/core_cal.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/core/core_cfg.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/core/core_device.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/core/core_flash.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/core/core_utils.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/api/explorer_api.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/api/explorer_api_cal.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/api/explorer_api_cfg.c
C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/sci/sci_log.c:106:10: warning: no previous declaration for 'print' [-Wmissing-declarations]
  106 | status_t print(const char  *fmt_s, ...)
      |          ^~~~~
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/api/explorer_api_data.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/explorer_app.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/explorer_tasks.c
Building file: C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/main.c
C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/core/core_device.c: In function 'ExplorerApp_InitDevice':
C:/Users/jesse/src/AFBR-S50-API/Sources/ExplorerApp/core/core_device.c:222:19: warning: function call has aggregate value [-Waggregate-return]
  222 |     ltc_t start = Time_Now();
      |                   ^~~~~~~~~~
Building target: AFBR_S50_ExplorerApp_RA4M2.elf
c:/program files (x86)/gnu arm embedded toolchain/10 2021.10/bin/../lib/gcc/arm-none-eabi/10.3.1/../../../../arm-none-eabi/bin/ld.exe: cannot open linker script file memory_regions.ld: No such file or directory
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:116: AFBR_S50_ExplorerApp_RA4M2.elf] Error 1
"make -r -j20 all" terminated with exit code 2. Build might be incomplete.

Hi, the e2Studio seems to regenerate some of its files while building which seems to cause your issue.
We have tested and build the current version with FSP v4.4.0. Since your version is already v5.4.0, it might not be compatible any more with the previous version. So I would recommend to try this version.
I double checked the memory_regions.ld: youre right as this is generated upon build and appears in the output (Release/Debug`) folder. Not sure why this does not happen at your side, but maybe this behavior has changed in the newer version.
Here is the generated file, so you can append it to the project and retry (rename it to memory_regions.ld and place into the scripts folder):
memory_regions.ld.txt


Filter and search quickstarts with hooks

Description
This pull request introduces a new hook called useFilterSearchSort that handles keeping track of arbitrarily complex lists that can (optionally) be filtered, searched, and sorted. The goal of this hook is to abstract away the logic needed to update the URL and track events and allows components to just focus on rendering things.
What this does:

Keeps track of search, filter, and sort state
Updates URL parameters (if updateURL is set to true)
Instrument with New Relic Browser (if a trackingPrefix is supplied)
Instrument with Tessen (if trackingPrefix and trackingCategory are supplied)
Debounces URL updates and instrumentation when a user is searching

What this does not:

Keep track of the items being sorted
Update the list of filters (only tracks the actively selected filter(s))
Making the state available via context (a decent idea, I just haven't implemented it yet, see the @todo)

Due to it's generalized format, it should be fairly straightforward to bring this into the theme and use it on other pages. For example, here's a condensed view of how we're using it on the Instant Observability page (filter in 1 way, include a search, instrument it):
const { search, setSearch, filters, setFilters } = useFilterSearchSort({
  filters: { type: 'all' },
  trackingCategory: 'InstantObservability',
  trackingPrefix: 'quickstart',
  updateURL: true
});

// ...

<input onChange={(e) => setSearch(e.target.value)} value={search}>
<select onChange={(e) => setFilters({ ...filters, type: e.target.value })}>

And here's how we could use it for the icon gallery on the developer site (just search, no instrumentation):
const { search, setSearch } = useFilterSearchSort();

// ...

<input onChange={(e) => setSearch(e.target.value)} value={search} />

And here's how we could use it for the attribute dictionary on the docs website (filter in 2 ways, include a search, instrument it):
const { search, setSearch, filters, setFilters } = useFilterSearchSort({
  filters: {
    dataSource: 'all',
    event: 'all',
  },
  trackingCategory: 'AttributeDictionary',
  trackingPrefix: 'attributeDictionary',
  updateURL: true
});

// ...

<select onChange={(e) => setFilters({ ...filters, dataSource: e.target.value })}>
<select onChange={(e) => setFilters({ ...filters, event: e.target.value })}>

This reduces the amount of boilerplate code we have to write when implementing these types of user interfaces. This also makes it fairly trivial to add new functionality or instrumentation.

Closing this in favor of #1586


Update (knownissues): 403 and AuthZ

Added remediation steps that customers can use to discover Empty roles.
403 permissions were removed as the root cause was that the customer made changes that they did not account for.
FYi @aimeeu , I removed that known issue but didn't make changes to the release notes that may have referred to it yet.  Not sure if that will break things.

The title of this Pull Request needs to be changed to match the format:
<type>(<scope>): <subject>

See more details here: https://www.spinnaker.io/community/contributing/submitting/#commit-message-conventions
Some common examples are:
feat(armory.io): add docs.armory.io
fix(parser): grammar and spelling
style(loadingPage): made it super pretty!
refactor(helpMessages): changed order to make more sense


Add Super Admin Role

As a Super Admin
I want to be able to delete any comments (Parent or Childr
so that I have the ability to remove anything posted any users (Not Auto - Posted)

Assumptions & Scope
What are the assumptions for this story?
Will have the ability to act as all RBACS, with all permissions
What is IN scope?
Ability to delete comments posted by any users
Can NOT delete Auto Posted Comments based on system actions/
Can update a request into any state
What is NOT in scope?

Dependencies? What is the impact of this dependency? (If so, link dependency in the ticket, make it visible in a team´s backlog)
Validation Rules? (If yes, list here)
Design
@xxx - please link the Design here
Definition of Ready

[ ] Is there a well articulated User Story?
[ ] Is there Acceptance Criteria that covers all scenarios (happy/sad paths)?
[ ] If there is a user interface, is there a design?
[ ] Does the user story need user research/validation?
[ ] Does this User Story needs stakeholder approval?
[ ] Design / Solution accepted by Product Owner
[ ] Is this user story small enough to be completed in a Sprint? Should it be split?
[ ] Are the dependencies known/ understood? (technical, business, regulatory/policy)
[ ] Has the story been estimated?

Definition of Done

[ ] Passes developer unit tests
[ ] Passes peer code review
[ ] If there's a user interface, passes UX assurance
[ ] Passes QA of Acceptance Criteria with verification in Dev and Test
[ ] Confirm Test cases built and succeeding
[ ] No regression test failures
[ ] Test coverage acceptable by Product Owner
[ ] Ticket ready to be merged to master or story branch
[ ] Developer to list Config changes/ Update documents and designs
[ ] Can be demoed in Sprint Review
[ ] Tagged as part of a Release
[ ] Feature flagged if required
[ ] Change Management activities done?

An additional use for a super admin role that we may want to consider in the near future is the ability to push a request through to all stages for the purpose of training. It's been a headache when someone wants to see something again during a session and we can't easily show them without logging in as another user or repeating a bunch of steps, ie: demoing sign off today. cc: @m-prodan @lmullane


Typo fix in muldiv: Reminder->Remainder

Simple drive-by I assume: I am pretty sure this is about the remainder of the operation. But not entirely ;)

Oh no, you took that one away from a Hackoktoberfest contributor :smile:  Thanks!


Typo in documentation

I feel bad opening an issue for this, but had no idea how to report it otherwise. Small typo in Tutorial 3:
"Site Contents page will show you the installation status of your cliet-side solution. Make sure the installation is complete before going to the next step. "
cliet-side should be client-side

No need to feel bad @NikCharlebois .  Fixed it up.


Bug in Tilde MT in FREME live

This CURL
curl -X POST --header "Content-Type: text/n3" --header "Accept: text/n3" "http://api.freme-project.eu/0.4/e-translation/tilde?input=%3Cp%3EWelcome%20to%20Berlin!%3C%2Fp%3E&informat=text%2Fhtml&outformat=text%2Fhtml&source-lang=en&target-lang=de"

produces http status code 406 and the message "no content".

I dont see what is wrong
The error message is wrong
It is problematic because it happens on live.

When I try informat=text and outformat=turtle then I get
{
  "exception": "eu.freme.broker.exception.ExternalServiceFailedException",
  "path": "/e-translation/tilde",
  "message": "External service failed with status code 404",
  "error": "Not Found",
  "status": 404,
  "timestamp":<PHONE_NUMBER>118
}

there is a problem in en-de tranlsation system. We will recover asap.

It should work now.

Thanks @andish . Above CURL works now.
But I dont like the error message that FREME produced. So we should leave this ticket open to change the error message. This is low priority.

@josauder please try to reproduce this error, e.g. via using a wrong endpoint URL to Tildes MT API. Then you can fix it. Check also if the same error occurs on e-Terminology.

Now the body is forwarded if httpStatus!=200:
{
  "exception": "eu.freme.common.exception.ExternalServiceFailedException",
  "path": "/e-translation/tilde",
  "message": "External service failed: {\"Message\":\"No HTTP resource was found that matches the request URI 'http://banzai:91/translation/?sourceLXXXang=en&targetLang=de&system=full&domain=&key='.\"}",
  "error": "Not Found",
  "status": 404,
  "timestamp":<PHONE_NUMBER>574
}
```
Also the status code is forwarded.

Is this ok?

Perfect!


Exception Python 3.7 Django 2.2.4

I open URL:
http://<IP_ADDRESS>:8000/messages/compose/Sebastian/
then python throws:
Internal Server Error: /messages/compose/Sebastian/
Traceback (most recent call last):
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/core/handlers/exception.py", line 34, in inner
response = get_response(request)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/core/handlers/base.py", line 115, in _get_response
response = self.process_exception_by_middleware(e, request)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/core/handlers/base.py", line 113, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/contrib/auth/decorators.py", line 21, in _wrapped_view
return view_func(request, *args, **kwargs)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django_messages/views.py", line 94, in compose
'form': form,
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/shortcuts.py", line 36, in render
content = loader.render_to_string(template_name, context, request, using=using)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/template/loader.py", line 62, in render_to_string
return template.render(context, request)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/template/backends/django.py", line 61, in render
return self.template.render(context)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/template/base.py", line 171, in render
return self._render(context)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/template/base.py", line 163, in _render
return self.nodelist.render(context)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/template/base.py", line 937, in render
bit = node.render_annotated(context)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/template/loader_tags.py", line 150, in render
return compiled_parent._render(context)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/template/base.py", line 163, in _render
return self.nodelist.render(context)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/template/base.py", line 937, in render
bit = node.render_annotated(context)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/template/loader_tags.py", line 150, in render
return compiled_parent._render(context)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/template/base.py", line 163, in _render
return self.nodelist.render(context)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/template/base.py", line 937, in render
bit = node.render_annotated(context)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/template/loader_tags.py", line 62, in render
result = block.nodelist.render(context)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/template/base.py", line 937, in render
bit = node.render_annotated(context)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/template/base.py", line 904, in render_annotated
return self.render(context)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/template/base.py", line 993, in render
return render_value_in_context(output, context)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/template/base.py", line 972, in render_value_in_context
value = str(value)
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/utils/html.py", line 388, in
klass.str = lambda self: mark_safe(klass_str(self))
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/forms/forms.py", line 142, in str
return self.as_table()
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/forms/forms.py", line 284, in as_table
errors_on_separate_row=False,
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/forms/forms.py", line 243, in _html_output
'field_name': bf.html_name,
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/utils/html.py", line 388, in
klass.str = lambda self: mark_safe(klass_str(self))
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/forms/boundfield.py", line 33, in str
return self.as_widget()
File "/home/sebastian/PycharmProjects/easydating/env/env/myvenv/lib/python3.7/site-packages/django/forms/boundfield.py", line 93, in as_widget
renderer=self.form.renderer,
TypeError: render() got an unexpected keyword argument 'renderer'
"GET /messages/compose/Sebastian/ HTTP/1.1" 500 198416

can you please test with current master branch? This error was supposedly fixed yesterday, but no new release uploaded to pypi ...

Yeah nice it works. Thanks
Am Mo., 12. Aug. 2019 um 18:41 Uhr schrieb Arne Brodowski <
<EMAIL_ADDRESS>
can you please test with current master branch? This error was supposedly
fixed yesterday, but no new release uploaded to pypi ...
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/arneb/django-messages/issues/131?email_source=notifications&email_token=ALQXSAUQYAVU7O4ZMAYJWP3QEGHE3A5CNFSM4ILCDJV2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4DDSLY#issuecomment-520501551,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALQXSAQFFMJUC6OLLKRJVKDQEGHE3ANCNFSM4ILCDJVQ
.

thank you for the feedback. A new release will be made available shortly.

Can you Tell me how i can User i18n with 'de-de'?
Arne Brodowski<EMAIL_ADDRESS>schrieb am Di., 13. Aug. 2019,
09:48:

thank you for the feedback. A new release will be made available shortly.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/arneb/django-messages/issues/131?email_source=notifications&email_token=ALQXSAS4HWCEJPMSS5NNIZLQEJRLXA5CNFSM4ILCDJV2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4E23BY#issuecomment-520727943,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALQXSAQEUMXQPV7522YYJDTQEJRLXANCNFSM4ILCDJVQ
.

https://docs.djangoproject.com/en/2.2/topics/i18n/translation/#how-django-discovers-language-preference
settings.py:
USE_I18N = True
LANGUAGE_CODE = "de-de"
MIDDLEWARE = [
  #...
   'django.contrib.sessions.middleware.SessionMiddleware',
   'django.middleware.locale.LocaleMiddleware',  # <-- this is important
   'django.middleware.common.CommonMiddleware',
  #...
]

Hello,
i have all this in my settings.py:
MIDDLEWARE = [
#'simple_history.middleware.HistoryRequestMiddleware',
'django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
]
USE_I18N = True
LANGUAGE_CODE = 'de-de'
but when i write i message all labels from template where in english language.
Regards
Am Di., 13. Aug. 2019 um 11:10 Uhr schrieb Arne Brodowski <
<EMAIL_ADDRESS>
https://docs.djangoproject.com/en/2.2/topics/i18n/translation/#how-django-discovers-language-preference
settings.py:
USE_I18N = True
LANGUAGE_CODE = "de-de"
MIDDLEWARE = [
#...
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',  # <-- this is important
'django.middleware.common.CommonMiddleware',
#...
]
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/arneb/django-messages/issues/131?email_source=notifications&email_token=ALQXSAWB6U4YPROAT3UBRWTQEJ3BZA5CNFSM4ILCDJV2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4FBSXI#issuecomment-520755549,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALQXSAVUKCXCMTERJSKSL63QEJ3BZANCNFSM4ILCDJVQ
.

try to remove all supported languages except german:
settings.LANGUAGES = [
('de', 'German'),
]

Thank you IT works. Absolut amazing. Thanks
Arne Brodowski<EMAIL_ADDRESS>schrieb am Di., 13. Aug. 2019,
11:45:

try to remove all supported languages except german:
settings.LANGUAGES = [
('de', 'German'),
]
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/arneb/django-messages/issues/131?email_source=notifications&email_token=ALQXSAQDL7Y753GVK4Y2XFTQEJ7CXA5CNFSM4ILCDJV2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD4FENDY#issuecomment-520767119,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ALQXSAQD3ZR4JRVRXD7HAGTQEJ7CXANCNFSM4ILCDJVQ
.


Assets Swaps - Assets filter

If we use an asset filter, then the offers that use the assets we have selected should be displayed.

Checked


EVP_DecryptFinal_ex() no longer explicitly sets outl to 0 in some failure paths.

In 1.0.2 & 1.1.x, I believe the behavior of this function is to explicitly set outl to 0 in the event of a failure. In 3.0.0, it appears to leave outl unmodified in some errors paths (for example, decrypting with the wrong key).
I think it's debatable whether or not this is part of the API; I couldn't find anything in the man pages that explicitly stated one way or another what the expectations on outl should be in the failure case. Certainly it can be argued that as a matter of best practice a defensive application developer shouldn't trust outl in the event that EVP_DecryptFinal_ex() fails, but it can also be argued that assuming programmers will be as defensive as we'd like is a bad assumption.
To provide some sense of the potential fallout for applications here, I happened to notice this as a consequence of a negative testcase running under ASAN reporting a read off the end of a buffer boundary. Evidently we had some preexisting application code written by someone who wasn't defensive enough. Obviously I'm fixing it on the application side, but I wanted to submit this as an FYI.

I think it's debatable whether or not this is part of the API; I couldn't find anything in the man pages that explicitly stated one way or another what the expectations on outl should be in the failure case.

Normally we would not expect output parameters to be guaranteed to be updated in the event of an error. I'm not sure whether we should classify this as a bug. What do others think?

For the record, I would completely agree with the statement that it is wrong for an application to depend on this behavior. That's why I'm fixing the application. :)
It is other factors here that give me pause. In particular, the facts that the behavior used to be reliable and that OpenSSL documentation has on longer timescales not historically been comprehensive (though I would happily note that it has made incredible strides in that direction) raise my hackles. While I noted that the behavior may not be part of the API in any formal sense, it is indisputably CLIENT-VISIBLE behavior. My experience with our own product is that customers have a habit of developing expectations that any externally visible behavior not change (and frequently characterize it as a "regression" when it does), regardless of whether we have formally documented it. Anecdotally, I have observed that this effect is amplified in areas where our documentation is lacking.
Now of course sometimes it is necessary to change an externally visible behavior for some reason. It happens. Maybe the behavior is no longer practical, who knows. But I ask myself if that's really the case here. Is there really some compelling reason to change it? Is it hard or impractical to change it back?
Perhaps this is a controversial claim, but I think well-designed libraries endeavor to minimize changing externally visible behavior unnecessarily. Ideally if the behavior has to change, the ABI / API also changes ("breaks") so as to clue in application owners to potential issues.
I hope I'm not ruffling too many feathers to say this, but I think it's a pretty open secret that a common criticism of OpenSSL is that it is difficult for application owners to use correctly. I would humbly submit that this type of issue (and furthermore a refusal to address it) ends up being a contributing factor to that perception. Did the application owner make a mistake? Sure. Could the library have made the application's life easier, possibly saving it from itself? I'd argue that's also true here.

I think that output parameters should get initialised to sane values as a general API pattern and not be left potentially unchanged depending on the code path that was taken. A level of deterministic behaviour is desirable.
The approach of setting output parameters on input so that all error paths result in a logical consistent condition is a reasonable approach to take. It does tend to stop a whole class of common application errors being reported. And yes - those would be application errors - but they are common to have happen. Reducing error reports for such circumstances is desirable - it lets the user figure out what the user did wrong without logging invalid issues against the project.
This is in a very similar category of API approach for checking things like NULL pointers on input parameters.


Restore GO support on Quest

XRTK - Mixed Reality Toolkit Feature Request
Is your feature request related to a problem? Please describe
Since the firmware updates on the Quest to default to run as an Oculus GO, XRTK doesn't run as default.  Granted the developer can simply configure the manifest and run in Quest mode, but this doesn't sit with XRTK's "Open -> Configure -> Run" ethos.
How would you classify your suggestion

New platform support
Usability / Configuration

Describe the solution you'd like
When I build a new solution for the Quest, It should both:

Support the Oculus Go mode with controllers
Run without having to configure the manifest

Describe alternatives you've considered
Users have to manually force the Manifest update to get it to work.
Additional context
Oculus recently updated the firmware on the Quest to support Oculus Go apps. sadly they made this the default option for any title running on the quest.

Hmm, not sure about this PR now as Oculus have officially discontinued the Go.  However, there are still a great many out there.
Thoughts @FejZa ?

You might not like it but I think we don't need to worry about GO anymore. There is other frameworks/toolkits that can be used for GO development if needed.
I feel like 100% of XRTK users are targeting Quest. The next generation might even be revealed soon.
So as XRTK is still in heavy development let's cut these ties right now and not worry about GO.

If someone wants it they'll add it

You are thinking along the same lines I was thinking @FejZa , We'll leave it in the OpenVR space as it supports OpenVR, but we'll leave it out of the oculus package unless there is demand.
I recall that Oculus was potentially talking about removing it from the API entirely soon.


decom of unused v2 zabbix srv OSD-5865

This removes the alert trigger that checks for the online status of the V2 Zabbix server. The V2 server and proxy instances are no longer in use, and have been stopped.

Looks ok to me. I'm not sure why the Jenkins PR check is failing though.

When I checked the build output yesterday, it was failing to initialize a build due to a cert that expired in 2021.

/lgtm


pushpulldecoder

I have read the Code Of Conduct.
I have followed all the steps of submission properly.
added settings screen and dark theme toggler

Hey @pushpulldecoder, can you use Shared Preferences so that it would hold the dark mode after closing the application!
And there are some pages in which you have to write code to toggle the color like WordList Section, Puzzle Section, GameList Section.
Provider package is not included in pubspec.ymal file, so include that also.🙌
Other than that, all are good🤟✨
Give us PR once again after completing those changes!


Face distortion

Experiencing severe face distortion with image to video, here is an example:

https://github.com/user-attachments/assets/6bf8cbb2-21aa-49fc-a58a-65aea56e212d

Prompt: "Man smiling".

This may be due to image resizing, as current models only support resolutions of 640x384 or 1280x768. Therefore, the input image is resized to meet these requirements. However, direct resizing can result in distortion. Maybe you can try resizing by keeping the aspect ratio and then cropping?

This may be due to image resizing, as current models only support resolutions of 640x384 or 1280x768. Therefore, the input image is resized to meet these requirements. However, direct resizing can result in distortion. Maybe you can try resizing by keeping the aspect ratio and then cropping?

Thanks, keep ration resize produce better result:
https://github.com/user-attachments/assets/67dffa90-ad22-470f-883c-f9b7e616b140

Not really...
https://github.com/user-attachments/assets/6491f00e-61a1-4d91-a4b9-ca2311323e90

Please try using a smaller video_guidance_scale which may produce smaller motion and more stable video.
Regarding the face/teeth/hand distortion, we have also noticed similar issues during early tests, and believe it is related to the SD3 weight initialization. We are therefore training a new model checkpoint from scratch and are currently finishing the 384p video training. We will test this case on our new model checkpoint, and will keep you updated.

Closed as the miniFLUX checkpoint has been released.


Track lineage call changes over time

Since we’re only giving them the newest stuff, we need to write a script to internally check if any of the old lineages from old samples are updated when we run a new batch, flag them, and then manually inspect to decide what to do with it

this is now extra invalid so closing


added commented  auto copy functionality to cmake file

The correct way would be to use add_custom_command that is executed on the post build step, f.ex:
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy_directory "${CMAKE_CURRENT_BINARY_DIR}/AudioPlugin_artefacts/Debug/VST3/${PLUGIN_NAME}.vst3" "/Users/X/Library/Audio/Plug-Ins/VST3/${PLUGIN_NAME}.vst3")

For mac os there are no permissions involved when using the Library folder within the users workspace.

Why not use COPY_PLUGIN_ON_BUILD from JUCE?

Closed because of inactivity.


(#126) ensure actions with no inputs pass validation

Summary
This PR allows for actions without inputs to be defined and used by making sure that they pass validation.
This is done by improving the way the process_results flag is ignored - we now ignore it in all
cases by simply deleting it if it is present.
In detail
This flag may be added automatically to a request and will not be
part of the DDL or JSON. We therefore need to ignore it.
Previously, we only ignored it when looking for extra inputs to a request, but we did not
ignore it for requests with no inputs.
This should fix #126: In that issue, an external agent with no inputs
declared fails validation.
NB: I have reorganized the tests very slightly to group similar tests under a single Context - let me know if that's an issue

NB: The PR includes some white space changes that were automatically made by goimports - let me know if you'd like me to back those out.
The changes to go.mod were made upon running go test. I hope that's all right.

good stuff, yeah I think in general the whole process_results idea is bad all throughout and needs to die, it's an optimization made years ago that in modern message brokers don't matter. Thanks for digging into this and getting it sorted.
Can you:

Squash all this in one commit
Change the commit format to (#126) ensure actions with no inputs work correctly or similar message - but prefix with the ticket number
Update the PR title similarly (examples in CONTRIBUTING.md)

Then we're good to go

I believe I've done all you asked. Please take another look @ripienaar


Can't scroll dropdowns in Firefox

this is the cause we see of the clipping in the hover legend according to @alexpaxton https://github.com/influxdata/influxdb/issues/12630

the needs to be fixed in influxdata/react-custom-scrollbars
there’s a difference of 15px between the fancy scroll area and what the component is told to be


Remove Button don't remove Image in Image Repeater Field

Hi @aristath, @sayedwp
I've been using Kirki for my project. I like the Image Repeater Field. But there seems to be an issue when we remove the image in repeater field. When the image is removed the customizer "Saved" button doesn't change to "Save & Publish". Also if we make changes in other field and remove the image and hit "Save & Publish" button and we refresh customizer, the other field is updated but the image remains there

. Can you please look at this.
Thanks

@manandharsudin thank you for reporting this!
I just merged a commit submitted by @sayedwp that fixes this issue so we'll include this in the next release.


Auto format SQL query on every node update.

Summary
Finally... pretty print all the SQL queries in the nodes, so we can enjoy looking at the configs :)
Test Plan
Unit tests plus compiled all the current examples.

OK, I see all the pre-commit issues. Will fix.


Fix for structured error message

This change introduces a structured error object for the response. Previously if there is an error such as hitting quota or running out of funds, the API will return an error message and parsing will fail because it is not a string. Now it will get properly deserialized into the "LastError" struct.


iOS Xamarin app is getting many crashes related the Google Ads SDK

Here is the discussion about this issue https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/ios/I4EEWrPPbSc
I have integrated Google Ads SDK version 7.38(not the latest one) to my Xamarin iOS app. My app is facing exact same issue as what the topic above is talking about. I've also tried to solve it by adding a gad_preferred_webview key with value of wkwebview in app's Info.plist file. But my app got performance issue in loading the ads.
I've checked the release notes of the latest SDK(7.53.0). Google might have fixed some bugs related my issue. However, when I check the Xamarin Google Ads SDK version from Nuget. It is 7.47. I think it was out update for a while.
Could you please help me to have the update for this SDK? OR any solution to fix my issue. Thank you so much.

Hi guys! Just letting you know that Google Mobile Ads v7.53.1 has been released! Hope this fixes your issues. If something happens, please, let us know. Best!

The root cause of Crash issue related to UIWebView that very old in Mobile Ads.
In Release Note, The new version v7.55.0 that total remove UIWebView and replaced by WKWebView.
https://developers.google.com/admob/ios/rel-notes
I think the correct version that fixed this issue is v7.55.0.
Do you have plan to bind Mobile Ads SDK to v7.55.0?

Do you have plan to bind Mobile Ads SDK to v7.55.0?

@TuanNA-MTITech not for now, I don't have an ETA of when this component will be updated.
That said, community PR are very welcome! We would really appreciate your help! Best!

I have just talked with my manager about this and this has been prioritized. We are gonna work on this very soon.
@TuanNA-MTITech or @congpt-xamarindev can you file a new issue about this? Thanks in advance!

wow, thank you very much for your effort. We are looking forward to getting your results 👍


chore(deps): upgrade dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-dependencies-1.x" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 1015

Questions ?
Please refer to the Backport tool documentation


Hero image too small

On some devices the hero image is too small somehow. I tested it on Firefox

Hi there! I'd like to take a shot at fixing this. Once I have a clearer understanding, I'll propose a solution and submit a pull request.

Nice @modouaicha023 you're welcome !
@NDOY3M4N can you add more explanation on this issue.

@daoodaba975 You can reproduce the bug in Firefox by zooming in from 110%. I maybe have a solution, i'm gonna try fixing it

Yup, just tested it on the Brave browser too and it's the same issue. I think this is related to the flex style defined in the hero container. If you would like, we can assign you this issue @modouaicha023

@NDOY3M4N Thanks for that information. I'll take a closer look at the flex style. You can assign me to this issue.


Would you please support LVIS dataset?

Hello @zhangchbin , We have provide a config for LVIS dataset here: https://github.com/IDEA-Research/detrex/pull/299/files
but we did not merge it yet.


Setup failed for syslog: No setup or config entry setup function defined.  Error setup.py

Fails right out the gate.  Not sure what's wrong here.
esp syslog issues.txt

I was a bit confused by your issue at first 😅 but here is the issue:
This is a custom component for esphome to forward esphome node logs to a syslog server, not for HomeAssistant itself.
Here I see that you added a syslog: section to your HomeAssistant config for which HA doesn't know what to do, hence the error.
Here is a part of the config of one of my esphome node:
esphome:
  name: esp_sonette
  platform: ESP8266
  board: d1_mini

# Enable logging
logger:

syslog:
  ip_address: "<IP_ADDRESS>"
  min_level: DEBUG

Here <IP_ADDRESS> is not HomeAssistant ip, it's the address of the syslog server that's ingesting the logs from every node
As for my HomeAssistant config, it needs no changes as this component does not interact with it

Updated the readme, thanks.


[6.0] SILGen: Correct handling of subscripts with addressors.

Explanation: Fixes a spurious move-only checking error when using UnsafeBufferPointer's subscript as a borrowing parameter of noncopyable type.
Scope: Bug fix.
Issue: rdar://127335590.
Original PR: https://github.com/apple/swift/pull/73410
Risk: Medium-low. The refactoring has a chance of affecting existing code using noncopyable types.
Testing: Swift CI, test case from bug report
Reviewer: TBD

@swift-ci Please test


chore(deps): upgrade dev dependencies

Upgrades project dependencies. See details in workflow run.

Automatically created by projen via the "upgrade-dev-dependencies-k8s-26-main" workflow

⚪ Backport skipped
The pull request was not backported as there were no branches to backport to. If this is a mistake, please apply the desired version labels or run the backport tool manually.
Manual backport
To create the backport manually run:
backport --pr 3116

Questions ?
Please refer to the Backport tool documentation