fix strikethrough is not applied to deleted markdown text while offline on native

Details

When we delete a markdown message while offline on Android/iOS, the text is not getting strikethrough.
Fixed Issues

$ https://github.com/Expensify/App/issues/15571
PROPOSAL: https://github.com/Expensify/App/issues/15571#issuecomment-1467216642
Tests

Same as QA Steps

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

Offline tests

Same as QA Steps
QA Steps

Open any chat
Send a message with markdown, for example

`test`

Turn off the internet connection
Delete the message you just sent
Verify the text is strikethrough

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

PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

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

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

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

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

[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR author checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

https://user-images.githubusercontent.com/50919443/227407197-37b3eccc-2849-4b11-bc9e-a0f3f1df54ab.mov

Mobile Web - Chrome

https://user-images.githubusercontent.com/50919443/227407208-f5907d2f-b13d-4695-bed4-5b0b6b02285c.mp4

Mobile Web - Safari

https://user-images.githubusercontent.com/50919443/227407216-4604baaf-1426-44ed-b6e5-96e60c60fdf2.mov

Desktop

https://user-images.githubusercontent.com/50919443/227407229-9dd582ab-152e-4ef4-980d-20c89c1bc684.mov

iOS

https://user-images.githubusercontent.com/50919443/227407249-d1f51b2e-5dcc-40df-a0e2-6c98a1a1cebb.mov

Android

https://user-images.githubusercontent.com/50919443/227407259-66152042-5aaa-45d7-964d-9e41e015cbb2.mp4

@youssef-lr @Santhosh-Sellavel One of you needs to copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button]

We don't apply the del tag for non-native platform because for some reason, there will be 2 strikethrough lines when we delete a code block message. It only happens to code block and not other markdown.
Code block:
``

Kindly bump @Santhosh-Sellavel.

Reviewer Checklist

[x] I have verified the author checklist is complete (all boxes are checked off).
[x] I verified the correct issue is linked in the ### Fixed Issues section above
[x] I verified testing steps are clear and they cover the changes made in this PR

[x] I verified the steps for local testing are in the Tests section
[x] I verified the steps for Staging and/or Production testing are in the QA steps section
[x] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

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

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

[x] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[x] I verified proper code patterns were followed (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is correct English and approved by marketing by adding the Waiting for Copy label for a copy review on the original GH to get the correct copy.
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I verified that this PR follows the guidelines as stated in the Review Guidelines
[x] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] If a new component is created I verified that:

[x] A similar component doesn't exist in the codebase
[x] All props are defined accurately and each prop has a /** comment above it */
[x] The file is named correctly
[x] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[x] The only data being stored in the state is data necessary for rendering and nothing else
[x] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[x] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[x] All JSX used for rendering exists in the render method
[x] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

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

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

[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[x] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Web

Mobile Web - Chrome

Mobile Web - Safari

Desktop

iOS

Android

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

🚀 Deployed to staging by https://github.com/youssef-lr in version: 1.2.93-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
failure ❌

🚀 Deployed to production by https://github.com/thienlnam in version: 1.2.93-4 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅


E - Streamline user first-experience

Acceptance Criteria

[ ]

Hi @atopal, @jmswisher - Can we deem this epic as done? I see a couple of open user stories #1858, #1925, #1950 - Should we close / cancel / delete those?

@chinikes yeah, I think we can consider this done.


Can we notarize / sign binaries for macos?

The binaries we upload to github right now aren't possible to run on macos without first jumping through hoops and taking them out of quarantine. Maybe there's something we can do with our build or packaging to make that problem go away?

Maybe we could do that, and get cargo binstall, mise or brew to work on macos? 🤔

I have succeeded in jumping though hoops, and can now run eugene help 🎉
But I am not entirely sure if I used the hoops I was supposed to.
Or if I found different hoops?! Here’s what I did on my Mac with M1:

Download eugene-aarch64-apple-darwin from releases to my home directory
Give MacOS access to open ref https://support.apple.com/en-gb/guide/mac-help/mh40616/mac
Move the binary to /usr/local/bin/
Check the access permissions, I guess it needs moar, so something like:
chmod u+x eugene-aarch64-apple-darwin
Add alias eugene="eugene-aarch64-apple-darwin" to my .zshrc
Run eugene help 🥳

I couldn’t get either of these to do what I expected
cargo install
cargo install eugene

fails to buils with a error: failed to compile eugene v0.6.0`
but I think this is what you’re describing in this issue?
removing the quarantine attribute
When downloading the binary, I couldn’t get this to fly:
xattr -d com.apple.quarantine eugene

The output I got was:
xattr: No such file: eugene

Which I now kinda understand is probably because I had a eugene-aarch64-apple-darwin and not a eugene. Perhaps I am supposed to rename the downloaded binary? 🤔🤯

And yeah, you can rename that file to eugene and put it anywhere on PATH. Maybe that would be more obvious if the download was an archive names eugene-aarch64-apple-darwin that just contained the executable within?

Wheee, now that I play around again with alternative hoops, it’s already seems obvious to me that it’s my job to name the binary when I download the file from releases. The browser actually asks me for a name when I save the link. And even if I just hit enter and then get the eugene-aarch64-apple-darwin name, it probably would have made sense to move the file with something like sudo mv eugene-aarch64-apple-darwin /usr/local/bin/eugene instead of preserving the full release name. Yes, this is one of those things that suddenly now is obvious even though I confused myself at first. TIL 🎓

About cargo install! I misunderstood, because I thought cargo install failing on macos was an expected bug, that this was what you were describing in https://github.com/kaaveland/eugene/issues/48#issuecomment-2118985975 So I didn‘t try too hard when I got an initial error — and went looking for hoops to jump though instead.
Now I tried cargo install eugene again and looked properly at the error. I needed to install cmake and now that I have done so with Homebrew, I can also cargo install eugene just fine 🥳
~ ᐅ which eugene
/Users/katla/.cargo/bin/eugene
~ ᐅ eugene -h
Careful with That Lock, Eugene

This was a fun and super useful detour! 🎓
(sry for hijacking the original issue 🤣)

I've been investigating the cargo install failure and I have made some discoveries. The dependency to pg_query brings a dependency to prost, which needs a C++ compiler and apparently libclang. I must've accidentally already had those installed on my machine, so I never noticed. On ubuntu, you need:

gcc or clang
g++ or clang
libclang-dev
cmake

I'm guessing the same dependencies would be necessary on macos. I think you get clang with xcode-select --install and cmake with brew install cmake and nothing else should be necessary. 🤔

This is useful feedback on the documentation (and also releases) and I'm not too worried about the structure in the ticket system yet 😆


BUG 2182375: NetworkFence: correct check in validating webhook

When a NetworkFence CR is validated, an incorrect comparison is done. DeepEqual() returns true when the there are no changes, this is valid and not an error. Adding ! to inverse the check corrects the comparison and only reports an error when the parameters are modified.
See-also: https://bugzilla.redhat.com/2182375
(cherry picked from commit 5da0cb807a4f0a626149af408b05dd6ea943c0f1)

/lgtm


add conversionFactor to cim:UnitMultiplier

cim:UnitMultiplier.M a cim:UnitMultiplier;
  rdfs:label "M" ;
  cims:isenum "True" ;
  skos:definition "Mega 10**6."@en ;
  qudt:prefixMultiplier 1.0E6;
  skos:exactMatch prefix:Mega.

We need a mapping factor to add this to multipliers.
It'll be used by SDKs.

fix09-map-qkUnitsMultipliers-38.ru

Mind you :

1.0e6 (for "M") means xsd:double.
1.0 (for "none") means xsd:decimal

Maybe I should tag them both as as xsd:float?


Feature: Check that specific object present in List

Feature: Check that specific object present in List
Motivation
It's a common use case to check if some object present in list. There are objects with overridden and not overridden equals() & hashCode().
So is very repeating operation to write code as:
Assert.assertTrue(list.stream().anyMatch(user -> user.name.equals(userName)), "list not contains user");
Assert.assertTrue(list.contains(user), "list not contains user");
I propose to add methods to simplify this action and convenient use:
Assert.assertListContains(users, user -> user.name.equals(userName), "user " + userName);
Assert.assertListContainsObject(users, user, "user " + user.name);
assertListContains uses a Predicate
assertListContainsObject uses contains() method of List
Did you remember to?

[x] Add test case(s)
[x] Update CHANGES.txt
[x] Auto applied styling via ./gradlew autostyleApply

Why not but we recommend to use assertj

You right, but nice to have built in feature, because not always possible  to add a new library)


Add PHP 5 Support

Modified char_mapping  to support PHP 5. Since PHP 5 is lack of IntlChar, this version can only convert ASCII characters perfectly. Plain mode can work well in PHP 5.However, since PHP 5 doesn't support ("function_name")() to call functions, I added a mode called assert5 which added some extra characters to support eval in PHP 5.I have also updated the README file.

Awesome, thanks! But I insist on using only ([+.^]) to accomplish this (I want to keep those generated code fuckful XD).
Anyway, don't worry. Recently I found that we can use things like this in PHP 5.6+ (since spread syntax only support newer version), so we don't need to use $_='assert';!
call_user_func(...["assert","eval('echo 1; return 1;')"]);

I'll try it later, or maybe you can help me to achive this 😆


Arc can leak memory if data happens to be allocated directly adjacent to use_count

There are two ways to create an arc. The data and the use_count can be allocated separately (as done by arc_X_from_ptr()) or they can be done together (as with arc_X_make()). The problem lies in arc_X_drop():
STC_INLINE void _c_MEMB(_drop)(const i_type* cself) {
    i_type* self = (i_type*)cself;
    if (self->use_count && _i_atomic_dec_and_test(self->use_count)) {
        i_keydrop(self->get);
        if ((char *)self->get != (char *)self->use_count + offsetof(struct _c_MEMB(_rep_), value)) {
            i_free(self->get, c_sizeof *self->get);
            i_free(self->use_count, c_sizeof(long));
        } else { // allocated combined counter+value with _make()
            i_free(self->use_count, c_sizeof(struct _c_MEMB(_rep_)));
        }
    }
}

It dynamically determines how to free the structure based on if  ->get points to the position relative to ->use_count that you would expect if they were allocated in a single block. Unfortunately there is no guarantee that this layout isn't the case if the memory blocks were allocated separately. If this happens the memory of the data is leaked.
In practice this is extremely unlikely to cause a serious problem in the wild. I spotted it reading the code, and was only able to reproduce after much experimentation. I have been unable to make glibc malloc on x86-64 Linux reproduce at all, however jemalloc seems more willing to put blocks of memory next to each other.
With jemalloc installed and the following code:
#include <stdio.h>

typedef struct Data {
    char a[1];
} Data;

#define i_key Data
#include "stc/arc.h"

int main() {
    const int ptr_len = 50;
    void* ptrs[ptr_len];
    while (true) {
        int blocks = rand() % ptr_len;
        for (int j = 0; j < blocks; j++) {
            ptrs[j] = malloc(1);
        }
        Data* data = malloc(sizeof(Data));
        arc_Data arc = arc_Data_from_ptr(data);
        for (int j = 0; j < blocks; j++) {
            free(ptrs[j]);
        }
        arc_Data_drop(&arc);
    }
    return 0;
}

Compiled and run with:
gcc test.c && LD_PRELOAD=`jemalloc-config --libdir`/libjemalloc.so.`jemalloc-config --revision` ./a.out

Nothing happens, because very small memory leaks are hard to detect and it doesn't reproduce in Valgrind, however if you add a print statement to the 2nd branch of the condition in arc_X_drop you can see it is taking that branch, which it should never do.
Since it could show up in unexpected places and be very hard to debug, I think this is worth fixing even if the problem is mostly theoretical at this point.

I managed to reproduce with glibc, and got it to leak a noticeable amount of memory:
#include <stdio.h>

#define LEAK

typedef struct Data {
    char a[1024];
} __attribute__((aligned (32))) Data;

#define i_key Data
#include "stc/arc.h"

#define arcs_len 100000
int main() {
    arc_Data arcs[arcs_len] = {0};
    unsigned i = 0;
    while (true) {
        for (int k = 0; k < 100000; k++) {
            void* random_ptr = malloc(1);
            for (int j = 0; j < 50; j++) {
                i = (i + rand()) % arcs_len;
                if (!arcs[i].get) {
#ifdef LEAK
                    Data* data = malloc(sizeof(Data));
                    arcs[i] = arc_Data_from_ptr(data);
#else
                    arcs[i] = arc_Data_make((Data){0});
#endif
                }
            }
            for (int j = 0; j < 100; j++) {
                i = (i + rand()) % arcs_len;
                if (arcs[i].get) {
                    arc_Data_drop(&arcs[i]);
                    arcs[i] = (arc_Data){0};
                }
            }
            free(random_ptr);
        }
        for (int j = 0; j < arcs_len; j++) {
            if (arcs[j].get) {
                arc_Data_drop(&arcs[j]);
                arcs[j] = (arc_Data){0};
            }
        }
        printf("Reset\n");
    }
    return 0;
}

This can be compiled and run simply with
gcc test.c && ./a.out

It's a bit convoluted in order to keep the heap in a state where the bug consistently happens for an extended period of time. Note that the used memory usage of the process slowly creeps up (by about a megabyte every 25 seconds on my machine) when LEAK is defined, and jumps around a little but doesn't consistently rise when it's not.
__attribute__((aligned (32))) is used so that the data arc's value struct is 32-byte aligned. This way it's possible for the dynamic allocation (which seems to always be 32-byte aligned) to line up with what arc is expecting in the single allocation case.


Ember client hangs on large responses when F[_] is a Kleisli

I was experimenting with integrating the http4s client with Natchez tracing, and I ran into a bug with Ember. When I converted the F[_] to be the Kleisli[....] that Natchez needs, the ember client started to hang on requests that were more than one chunk. I don't know if it's failing to terminate after the stream is over, or if it is failing to proceed past the second chunk; I've only been able to test it with 2 chunk responses.
Example Code
EmberBroken.scala
package emberbroken

import cats._
import cats.data.Kleisli
import cats.implicits._
import cats.effect._
import cats.effect.implicits._
import natchez.{EntryPoint, Span, Trace}
import org.http4s._
import org.http4s.client.blaze.BlazeClientBuilder
import org.http4s.implicits._
//import org.http4s.client.blaze.BlazeClientBuilder
import org.http4s.ember.client.EmberClientBuilder

import scala.concurrent.ExecutionContext

object EmberBroken extends IOApp {
  // This will always work
//  override def run(args: List[String]): IO[ExitCode] = runIO

  // This will fail when the stream has multiple chunks
  override def run(args: List[String]): IO[ExitCode] = runTraced

  def runIO = runF[IO]
  def runTraced = entryPoint[IO].use { ep =>
    ep.root("Testing Ember App").use { root =>
      runF[Kleisli[IO, Span[IO], *]].run(root)
    }
  }

  def runF[F[_]: Concurrent: Timer: ContextShift]: F[ExitCode] =
    EmberClientBuilder.default[F].build
    .use { c =>
      c.get((uri"https://baconipsum.com/api/")
        .withQueryParam("type", "meat-and-filler")
        .withQueryParam("paras", "100") // Set this to something smaller and it works
        .withQueryParam("format", "text")
      ) {
        res => Sync[F].delay { println("Got a response") } *>
          res.bodyText
            .evalTap(text => Sync[F].delay { println("Have a chunk")})
            .compile.drain
      }
        .flatTap(_ => Sync[F].delay { println("fetched") }) // Not printed when response is too large
        .as(ExitCode.Success)
    }

  def entryPoint[F[_]: Sync]: Resource[F, EntryPoint[F]] = {
    import natchez.jaeger.Jaeger
    import io.jaegertracing.Configuration.SamplerConfiguration
    import io.jaegertracing.Configuration.ReporterConfiguration
    Jaeger.entryPoint[F]("natchez-example") { c =>
      Sync[F].delay {
        c.withSampler(SamplerConfiguration.fromEnv)
          .withReporter(ReporterConfiguration.fromEnv)
          .getTracer
      }
    }
  }
}

build.sbt
name := "emberbroken"

scalaVersion := "2.13.2" // Also supports 2.12.x

val http4sVersion = "0.21.6"

// Only necessary for SNAPSHOT releases
resolvers += Resolver.sonatypeRepo("snapshots")

//scalacOptions += "-Ypartial-unification"

libraryDependencies += "org.http4s" %% "http4s-dsl" % http4sVersion
libraryDependencies += "org.http4s" %% "http4s-blaze-client" % http4sVersion
libraryDependencies += "org.http4s" %% "http4s-ember-client" % http4sVersion
libraryDependencies += "org.tpolecat"  %% "natchez-jaeger" % "0.0.11"

addCompilerPlugin("org.typelevel" %% "kind-projector" % "0.11.0" cross CrossVersion.full)

Actually, I accidentally let it hang for a minute or so and it eventually completed.

From where is ep coming, @gatorcse? I'm assuming it's entryPoint?

yeah, entryPoint gives a Resource of EntryPoint. The entryPoint code is copied directly from the natchez examples

Needs a retest, because Ember has seen a lot of progress since then.

k, I'll check when I can, thanks!

@rossabaker Fixed, seems to be fixed as of 0.21.7, the very next version after my initial test. Also confirmed works in 0.22.0-M7


Always On Feature Query

"If you run on an App Service plan, you should enable the Always on setting so that your function app runs correctly. On an App Service plan, the functions runtime goes idle after a few minutes of inactivity, so only HTTP triggers will "wake up" your functions." - Does this mean even if we have enabled the Always On setting the functions will go into an idle state ? I am planning to use a queue trigger implementation - so this plan will not work out for me if this is the case ?

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

ID: 57106982-21bb-f60a-fde3-7f9d4e83afb1
Version Independent ID: 5922b4e9-ea56-be60-760e-5e01f4dc422b
Content: Azure Functions Dedicated hosting
Content Source: articles/azure-functions/dedicated-plan.md
Service: azure-functions
GitHub Login: @ggailey777
Microsoft Alias: glenga

@dracosachin , "Always on" feature is not only applicable to http triggers. It is applicable to all function triggers. So it will work for your scenario which is queue trigger.  Please note that, Always on is like a pinging service that will keep pinging the backend instance/VM that is running the function app so that the VM/instance is warm and would avoid cold start.
Hope this helps. Please let me know if you need any further clarification.

@dracosachin , I hope you had a chance to look into my previous comment. Please let me know if you have any further queries

Hi Mughundhan,
Yes, its clear now
Thanks,
Sachin C
On Mon, Dec 27, 2021, 3:10 PM Mughundhan_R-MSFT @.***>
wrote:

@dracosachin https://github.com/dracosachin , I hope you had a chance
to look into my previous comment. Please let me know if you have any
further queries
—
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/azure-docs/issues/85652#issuecomment-1001473227,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AFIPDI4IBQKEAY5AI72LLZDUTAYBBANCNFSM5KT6XOQA
.
Triage notifications on the go with GitHub Mobile for iOS
https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675
or Android
https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub.
You are receiving this because you were mentioned.Message ID:
@.***>


prow: move to use WI for auth_header in private (#45606)

Fixes https://github.com/istio/istio/issues/45608

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all


[SCB-745] (WIP)RetrySender should not throw exception when go the saga start event

The first part of SCB-745, refactoring LoadBalancedClusterMessageSender, allowing customizing the strategy of MessageSender choosing.

Coverage increased (+0.1%) to 94.247% when pulling d916a3e587c5c839bf5e93aa51771b2e84a25301 on imlijinting:master into 3f5c38a146982a04ed2b17759309de3e14f8c5ab on apache:master.

Coverage increased (+0.1%) to 94.247% when pulling d916a3e587c5c839bf5e93aa51771b2e84a25301 on imlijinting:master into 3f5c38a146982a04ed2b17759309de3e14f8c5ab on apache:master.

@imlijinting  I think we can merge this part of PR as there could be lots of change on the LoadBalancedClusterSender recently.


ImageResizer/PowerRename launches only on the primary monitor on a multi-monitor setup

ImageResizer always launches on the primary monitor even if the right click menu is opened on another monitor.
Environment
Windows build number: [run "ver" at a command prompt] Microsoft Windows [Version 10.0.18363.592]
PowerToy module for which you are reporting the bug (if applicable): ImageResizer

Steps to reproduce
Open the right-click context menu on a file in a secondary monitor.

Expected behavior
The ImageResizer app should open on the same monitor.

Actual behavior
The ImageResizer app opens on the primary monitor.

Screenshots

@arjunbalgovind, just retried this, Rename launches on primary monitor on at least the current MSIX build.

Yes, I've noticed this on the MSIX build as well. I think it doesn't happen for the MSI.

@arjunbalgovind it does as well :)

Surprisingly, when it is launched on the primary monitor it appears on the foreground for me. (If the right-click wasn't on the prim monitor).

Resolved for ImageResizer with #1452

adding in fixed commited tag then

wait, did we fix PowerRename @arjunbalgovind ?

No, its only been fixed in ImageResizer as of now.

lemme remove that awesome tag :)

Looks like for ImageResizer this issue existed for both MSI/MSIX and now its fixed for both. For PowerRename this seems to be an MSIX specific bug. It opens on the correct monitor for the MSI installation.
We could make a separate issue for that then and resolve this since its resolved for MSI for both PowerToys.

Let’s do that.


Add two more generic methods for EntityInfoWrapper

Summary
These will make it easier to construct EntityInfoWrapper messages from
the new entity handlers.
Related: #4327
Change Type

[ ] Bug fix (resolves an issue without affecting existing features)
[ ] Feature (adds new functionality without breaking changes)
[ ] Breaking change (may impact existing functionalities or require documentation updates)
[ ] Documentation (updates or additions to documentation)
[x] Refactoring or test improvements (no bug fixes or new functionality)

Testing
make test + part of a larger branch
Review Checklist:

[x] Reviewed my own code for quality and clarity.
[ ] Added comments to complex or tricky code sections.
[ ] Updated any affected documentation.
[x] Included tests that validate the fix or feature.
[ ] Checked that related changes are merged.

coverage: 52.869% (+0.01%) from 52.857%
when pulling 18b0469affc63902be223cca1ac3b0d6a4d67ae8 on jhrozek:ewp_generic
into 6f89a1de73ec7e42b1730951b645bbfb6c1387a0 on stacklok:main.


xerces-c package has no ability to specify -Dxmlch-type to cmake

I want to use a wchar_t version of xercesc by passing -Dxmlch-type but I can't find a vcpkg flag to specifyc this (see https://xerces.apache.org/xerces-c/build-3.html). Looks the portfile has to be extended to allow this flag to be passed

Fixed


Add Footer to Learn More page same as Main file

We want to add a footer to the Learn more section same as on Home page one. Thanks.

@tarunsinghofficial  I am ready to take up the task
Can u assign to me? Please

Heyy !! I did that footer
@tarunsinghofficial

@ I pushed the code along with the navbar Enhancement section
PR is raised

PLease Assign this to me i want to work on this issue..


refac: transactionIds into TransactionIdRepository

Description
References

Codecov Report

Merging #482 (71eb5df) into main (21978a1) will decrease coverage by 2.88%.
Report is 168 commits behind head on main.
The diff coverage is 51.05%.

:exclamation: Current head 71eb5df differs from pull request most recent head 72c61db. Consider uploading reports for the commit 72c61db to get more accurate results

@@            Coverage Diff             @@
##             main     #482      +/-   ##
==========================================
- Coverage   83.07%   80.20%   -2.88%
==========================================
  Files         456      553      +97
  Lines       10418    13454    +3036
==========================================
+ Hits         8655    10791    +2136
- Misses       1438     2260     +822
- Partials      325      403      +78

Files Changed
Coverage Δ

...ivedMessages/ArchivedMessageGetDocumentListener.cs
0.00% <ø> (ø)

.../ArchivedMessages/ArchivedMessageSearchListener.cs
0.00% <0.00%> (ø)

source/Api/Common/HttpHeadersExtensions.cs
0.00% <ø> (ø)

source/Api/Configuration/InboxMessageMetadata.cs
0.00% <0.00%> (ø)

...iddleware/Authentication/ActorForAuthentication.cs
0.00% <ø> (ø)

...ntication/Bearer/BearerAuthenticationMiddleware.cs
0.00% <ø> (ø)

...MarketActors/MarketActorAuthenticatorMiddleware.cs
0.00% <ø> (ø)

...ation/Middleware/Correlation/CorrelationContext.cs
0.00% <ø> (-66.67%)
:arrow_down:

.../Middleware/Correlation/CorrelationIdMiddleware.cs
0.00% <ø> (ø)

...iguration/Middleware/Correlation/UserProperties.cs
0.00% <ø> (ø)

... and 158 more

... and 306 files with indirect coverage changes
:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Add CONFIG_MBEDTLS_HKDF_C=y to some esp32 defaults.

This seems to be required, otherwise I get errors like:
config/esp32/third_party/connectedhomeip/src/crypto/CHIPCryptoPALmbedTLS.cpp:330: undefined reference to `mbedtls_hkdf'

Marking as hotfix: this fixes some build failures after #26608 - not all sdk default files were updated. This updates some more, however @wqx6 please verify if any other files need updating (like examples/all-clusters-app/esp32/sdkconfig.defaults.esp32c6 or similar) or if my update of examples/lighting-app/esp32/sdkconfig.defaults.esp32c6 and similar need need reverting.

Marking as hotfix: this fixes some build failures after #26608 - not all sdk default files were updated. This updates some more, however @wqx6 please verify if any other files need updating (like examples/all-clusters-app/esp32/sdkconfig.defaults.esp32c6 or similar) or if my update of examples/lighting-app/esp32/sdkconfig.defaults.esp32c6 and similar need need reverting.

sdkconfig.defaults.<target_name> files don't need updating, because when we use idf.py set-target <target_name> both sdkconfig.defaults and sdkconfig.defaults.<target_name> will be applied.


Feature request - always action request on coordinator

Hi,
I have a suggestion for a slight change in behaviour:
Often I will want to perform an action - say 'pause' on a particular speaker that I am listening to - say 'kitchen'.
So I run 'sonos -l kitchen pause', only to be told that kitchen is not the coordinator. I then have to figure out which speaker is the coordinator and run the same command on the correct speaker. I was wondering if your script could figure this out for me? I want to pause the music in the group that 'kitchen' is part of, but I don't really care who the coordinator is - I just want the music paused.
I'm not sure if there are disadvantges to this approach, but it seems it could be useful?
Richard

This is a good idea. (I don't use groups much so it's not something that had occurred to me.)
For a specific subset of SoCo-CLI actions, it's simply necessary to divert the action to the group coordinator, which requires a bit of modest code refactoring. There's quite a broad range of actions to which this could/should apply. I think I've addressed most of them in the v0.3.16 release, but I might either have missed some or indeed been overzealous.
Let me know of any issues!

This is a good idea. (I don't use groups much so it's not something that had occurred to me.)
For a specific subset of SoCo-CLI actions, it's simply necessary to divert the action to the group coordinator, which requires a bit of modest code refactoring. There's quite a broad range of actions to which this could/should apply. I think I've addressed most of them in the v0.3.16 release, but I might either have missed some or indeed been overzealous.
Let me know of any issues!


UI: Better support for long repo names

Small template tweak to allow more of the repo name to show without wrapping.
Before

After

Second commit does a similar to the news feed:
Before

After

Codecov Report

Merging #5932 into master will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master    #5932   +/-   ##
=======================================
  Coverage   37.97%   37.97%
=======================================
  Files         329      329
  Lines       48406    48406
=======================================
  Hits        18383    18383
  Misses      27381    27381
  Partials     2642     2642

Continue to review full report at Codecov.

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

A proper fix for these kind of issues is flexbox, but it does not seem to be possible via semantic-ui, it's way too limited on what one can do and does not even have a flex: 1 equivalent from what I gather. Maybe I'll try something later, but this commit here is a improvement, so can be merged.

I think we're happy to migrate to view as necessary

It's not vue-specific, you still need CSS (framework or hand-coded), and I think semantic-ui is too fat, outdated and full of weird hacks. Maybe one of these:
https://bulma.io/
http://flexboxgrid.com/ (lightweight approach for only the flexbox part)

I don't think any of the maintainers have a huge amount of time to do a massive UI refactor but I think we're definitely of the opinion that it's time to migrate off semantic UI. The problem is how to do that without breaking everything.
If you're able and have the skills I think it's reasonable to do. The only thing I'd say is that you're gonna need lots of screenshots to prove its working.

Stream of thought follows:

I think you'd probably have trouble getting a total rewrite through the review process unless you formed a maintainer cabal.

How do we proceed with pushing forward with updating the UI? Ok, I think code speaks better than discourse but I wouldn't want to go down a black hole of making major changes without first discussing them first. The trouble is catching the interest of enough maintainers to get through the review process.

In a perfect world what framework would you propose? Given we're not in that perfect world and have a large amount of technical debt do you think that flexboxgrid is well supported enough and easy to migrate slowly across to?

We also need an easy way to check the feel of the UI changes - I don't think we can rely on automated tests here or simple code reviews. Unfortunately that means most of these changes won't be able to be reviewed on phone unless you put lots of screenshots on. I guess we also need UI testing "stories", human scripts to follow testing the UI and finding the break points.

You've had ~29 PR requests merged are you sure you wouldn't like to become a maintainer? (You don't get automatic merging rights but can approve/reject PRs)

How do we proceed with pushing forward with updating the UI

A total rewrite is out of question unless someone is willing to invest hundrets of hours, which I'm not. I suggest gradually introducing flexbox where it makes sense, small pieces that can be easily reviewed.

In a perfect world what framework would you propose

There's no perfect framework. Right now, flexbox layout is popular with css-grid also around the corner. I generally prefer do to things without frameworks because it offers the most control. Frameworks like semantic or bulma are too far abstracted from what is actually happening in CSS. A more modern approach is to use classes that map to exact css properties, and I think this is the way to go.
Regarding UI layout testing, I have no experience unfortunately. I may consider becoming a maintainer later, but right now I prefer not to be.

Can we move your disscussion about a move off semantic ui to a seperate issue to give more people a chance to discuss it? @zeripath @silverwind


One Time Discount Code

Hello,
Not an issue, but a question.
I am using Community Store (2.3.4) on a site with the PayPal payment gateway. My client would like to have a one-time discount of 15% off for a customer's first order. Since there is no login required to make a purchase, I was wondering if this is even an option. I know there is a "Single Use Code" checkbox, but this is not what I am looking for. I would need to cross-check the form info during checkout for a duplicate customer, which I am not sure is even a possibility.
Any help here would be greatly appreciated.
Craig

I think if customers aren't creating accounts the only option is the one-time codes.
And then the only way I can think of is either:

you have a contact form, and you manually create them on demand for customers
or, you write some sort of custom form that automatically creates one-off discounts and emails them to customers

Something has to track whether it's a customer's first or subsequent order, and that is quite tricky if the same customer decides to use different email addresses...

Thanks for the reply.
I figured as much. Is it possible to test for previous purchases from the same email? I know that people could fake it, but it may be enough for the client.

I'm sure you could programatically check for orders, in the same way that you can search for orders in the dashboard by emails. The issue I think it more applying a discount automatically to the cart, before they're really submitted anything.

I agree. Wouldn't want to allow the discount, only to take it away when making the payment.


Prediction

Here's what's going to happen.
Governments around the world are afraid that citizens will have access to a technology that will eliminate the power differential.There will probably be an "event" that will be orchestrated by state actors. This will be blamed on unregulated AI. The media will endlessly repeat how AI is going to kill all the children and destroy civilization. Social media companies will, undoubtedly, use AI to censor views that oppose the narrative. Since most of the public is technically illiterate, they will believe that the amazing new technology should only be handled, "safely", by altruistic corporations and governments. Low IQ / mentally weak / herd animal type people (for example, the types who use he/her pronouns in their bio.) will gobble this up.
The media and politicians aren't afraid of disinformation being created. In fact, if you're intellectually honest with yourself, they tell the majority of lies. What they are really terrified of is technology that will automatically find objective truth.

What a tremendous amount of insecurity and projection.


Refactored Test Cases in UpdateStatusActionTest.java

Related to #15164
Description
Implemented a similar refactoring approach as described in issue #15164. Introduced a helper method CreateMockTaskActionToolbox to reuse the creation of TaskActionToolbox mocks. This reduces code redundancy and improves test readability.
Key changed/added classes in this PR

Refactored test methods in the UpdateStatusActionTest.java.
Introduced CreateMockTaskActionToolbox method.

Key changed/added methods in this PR

CreateMockTaskActionToolbox

This PR has:

[ ] been self-reviewed.

[ ] using the concurrency checklist (Remove this item if the PR doesn't have any relation to concurrency.)

[ ] added documentation for new or modified features or behaviors.
[ ] a release note entry in the PR description.
[ ] added Javadocs for most classes and all non-trivial methods. Linked related entities via Javadoc links.
[ ] added or updated version, license, or notice information in licenses.yaml
[ ] added comments explaining the "why" and the intent of the code wherever would not be obvious for an unfamiliar reader.
[ ] added unit tests or modified existing tests to cover new code paths, ensuring the threshold for code coverage is met.
[ ] added integration tests.
[ ] been tested in a test Druid cluster.

Left a comment : https://github.com/apache/druid/issues/15164#issuecomment-1790454882

Left a comment on the original issue : #15164 (comment).

Thank you very much for your reply. I've merged the content from this PR into PR #15187

This one PR has been merged into PR #15187


Fix issues with cargo memory consumption in qemu environments

On my M1 (using Docker for Mac) builds were intermittently failing due to containers running out of memory. It seems to always happen at the exact same step (fetching crates). Here is a similar issue documented in the cargo project https://github.com/rust-lang/cargo/issues/10583.

🙏🏻


Bump release to 1.0.0-beta.2

Added

Users can create a custom taxonomy of categories in the CMS (eg. Subjects with Computer Science (incl. Algorithms & Data Structures), History, etc., and Levels with Beginner, Intermediate, etc.).
Filters are dynamically generated by the backend to support custom meta categories (level 1 nodes in the category taxonomy) and fix structual issues with dates.
Integrate the homepage and fill it with content in the demo-site.
Integrate a design for the list of organizations page.

Fixed

Richie is compatible with MySQL, with database switching utilities and dedicated tests.
Full-text searches also search in linked object names, such as categories & organizations.
Make improvements to the demo site to make it more representative of real-world use.
Don't break course pages if there is no linked organization.
Fix i18n issues that broke the backend when using other languages than the default english.
Prevent display glitches during loading of the courses search page.

done @jmaupetit


Upgrade Cargo to 0.62.0

Address the changes on https://github.com/rust-lang/cargo/pull/10064

:pushpin: Commit b7c2c175df891d4e1f67910b61914f48c9819e15 has been approved by JohnTitor

:hourglass: Testing commit b7c2c175df891d4e1f67910b61914f48c9819e15 with merge 7be536bb72b524965454db4a2f68ddefcced7917...

:sunny: Test successful - checks-actions
Approved by: JohnTitor
Pushing 7be536bb72b524965454db4a2f68ddefcced7917 to master...


Can not access to photos space

by https://developers.google.com/drive/v2/reference/files/list,
I used the 'scopes' key to retrieve photos, and also added the oauth scope.
But there's wrong response: " "The granted scopes do not give access to all of the requested spaces.""
This is my settings.yaml:

save_credentials: True
save_credentials_backend: file
save_credentials_file: credentials.json
get_refresh_token: True
oauth_scope:

https://www.googleapis.com/auth/drive.photos.readonly

Fixed. I have to delete the existed credentials file to add a new oauth scope.


Easier instructions for using STM32CubeIDE

Issue template

Hardware description: STM32F303VC
RTOS: FreeRTOS
Installation type: STM32CubeIDE
Version or commit hash: foxy

Steps to reproduce the issue
Download and install STM32CubeIDE from https://www.st.com/en/development-tools/stm32cubeide.html
Open up STM32CubeIDE and create a new project, choosing STM32F303VC as the board.
Follow the steps at https://github.com/micro-ROS/micro_ros_stm32cubemx_utils#using-this-package-with-stm32cubeide
Expected behavior
Successfully build the project.
Actual behavior
21:06:18 **** Incremental Build of configuration Debug for project microROS_test ****
make -j4 all
docker pull microros/micro_ros_static_library_builder:foxy && docker run --rm -v :/project --env MICROROS_LIBRARY_FOLDER=micro_ros_stm32cubemx_utils/microros_static_library_ide microros/micro_ros_static_library_builder:foxy
foxy: Pulling from microros/micro_ros_static_library_builder
Digest: sha256:33463a1857e63af0edf46178ddb2aeb9bb880a73a4e10fb03745a79751135198
Status: Image is up to date for microros/micro_ros_static_library_builder:foxy
docker.io/microros/micro_ros_static_library_builder:foxy
/entrypoint.sh: line 9: /project/micro_ros_stm32cubemx_utils/microros_static_library_ide/library_generation/library_generation.sh: No such file or directory
make[1]: *** [makefile:91: pre-build] Error 127
make: *** [makefile:59: all] Error 2
"make -j4 all" terminated with exit code 2. Build might be incomplete.

21:06:21 Build Failed. 2 errors, 0 warnings. (took 3s.296ms)

Additional information
I have no prior knowledge of STM32CubeIDE, so I have probably made some mistake when following the instructions.
Could someone please breakdown the instructions for someone who has never worked with a STM32 before? I have worked a lot with ESP32 and micro-ROS, which only needed the command line, not an IDE.

So it seems like the docker script can't find the utils map. I placed the utils folder inside the root of my project, and I even tested placing it inside a folder named project, but the docker still won't work.
With the STM32CubeMX steps I am able to use the docker, however, when I try to build the sample_main.c example, the builder can't find all the functions such as rcutils_get_zero_initialized_allocator, rcutils_set_default_allocator, etc.
I placed the microros_static_library inside Core->Inc, because before when I had it at the root folder, it wouldn't even find the includes.

Your docker command is not being generated well. Check the -v :/project it is not filling correctly the -v ${workspace_loc:/${ProjName}}:/project. Which version are you using?

Not sure if this is what you meant, but when I run docker -v :/project it says:

Docker version 20.10.11, build dea9396

which version of STM32CubeIDE are you using?

It's STM32CubeIDE-DEB 1.7.0, the latest one.

This is the first line in the console when I click on the build button:
docker pull microros/micro_ros_static_library_builder:galactic && docker run --rm -v /home/pgarrido/STM32CubeIDE/workspace_1.7.0/test:/project --env MICROROS_LIBRARY_FOLDER=micro_ros_stm32cubemx_utils/microros_static_library_ide microros/micro_ros_static_library_builder:galactic

As you can see, it is just the same we write in pre-steps, but with some "environment variables" correctly set:
docker pull microros/micro_ros_static_library_builder:galactic && docker run --rm -v ${workspace_loc:/${ProjName}}:/project --env MICROROS_LIBRARY_FOLDER=micro_ros_stm32cubemx_utils/microros_static_library_ide microros/micro_ros_static_library_builder:galactic

In your case, for some reason ${workspace_loc:/${ProjName}} is not being converted to the project path. Maybe you can to set it manually to the path where your micro-ROS project is.

It successfully downloaded all the dependencies now, thank you!
I did however bump into a new problem, I get this error now:
20:09:13 **** Incremental Build of configuration Debug for project microROS_test ****
make -j4 all
docker pull microros/micro_ros_static_library_builder:foxy && docker run --rm -v /home/peter/STM32CubeIDE/workspace_1.7.0/microROS_test:/project --env MICROROS_LIBRARY_FOLDER=micro_ros_stm32cubemx_utils/microros_static_library_ide microros/micro_ros_static_library_builder:foxy
foxy: Pulling from microros/micro_ros_static_library_builder
Digest: sha256:33463a1857e63af0edf46178ddb2aeb9bb880a73a4e10fb03745a79751135198
Status: Image is up to date for microros/micro_ros_static_library_builder:foxy
docker.io/microros/micro_ros_static_library_builder:foxy
micro-ROS library found. Skipping...
Delete micro_ros_stm32cubemx_utils/microros_static_library_ide/libmicroros/ for rebuild.

arm-none-eabi-gcc "../Core/Src/custom_memory_manager.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F303xC -c -I../Core/Inc -I../Drivers/STM32F3xx_HAL_Driver/Inc -I../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F3xx/Include -I../Drivers/CMSIS/Include -Imicro_ros_stm32cubemx_utils/microros_static_library_ide/libmicroros/include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/custom_memory_manager.d" -MT"Core/Src/custom_memory_manager.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Core/Src/custom_memory_manager.o"
arm-none-eabi-gcc "../Core/Src/dma_transport.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F303xC -c -I../Core/Inc -I../Drivers/STM32F3xx_HAL_Driver/Inc -I../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F3xx/Include -I../Drivers/CMSIS/Include -Imicro_ros_stm32cubemx_utils/microros_static_library_ide/libmicroros/include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/dma_transport.d" -MT"Core/Src/dma_transport.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Core/Src/dma_transport.o"
arm-none-eabi-gcc "../Core/Src/main.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F303xC -c -I../Core/Inc -I../Drivers/STM32F3xx_HAL_Driver/Inc -I../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F3xx/Include -I../Drivers/CMSIS/Include -Imicro_ros_stm32cubemx_utils/microros_static_library_ide/libmicroros/include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/main.d" -MT"Core/Src/main.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Core/Src/main.o"
arm-none-eabi-gcc "../Core/Src/microros_allocators.c" -mcpu=cortex-m4 -std=gnu11 -g3 -DDEBUG -DUSE_HAL_DRIVER -DSTM32F303xC -c -I../Core/Inc -I../Drivers/STM32F3xx_HAL_Driver/Inc -I../Drivers/STM32F3xx_HAL_Driver/Inc/Legacy -I../Drivers/CMSIS/Device/ST/STM32F3xx/Include -I../Drivers/CMSIS/Include -Imicro_ros_stm32cubemx_utils/microros_static_library_ide/libmicroros/include -O0 -ffunction-sections -fdata-sections -Wall -fstack-usage -MMD -MP -MF"Core/Src/microros_allocators.d" -MT"Core/Src/microros_allocators.o" --specs=nano.specs -mfpu=fpv4-sp-d16 -mfloat-abi=hard -mthumb -o "Core/Src/microros_allocators.o"
../Core/Src/dma_transport.c:1:10: fatal error: uxr/client/transport.h: No such file or directory
    1 | #include <uxr/client/transport.h>
      |          ^~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [Core/Src/subdir.mk:46: Core/Src/dma_transport.o] Error 1
make[1]: *** Waiting for unfinished jobs....
../Core/Src/microros_allocators.c:3:10: fatal error: cmsis_os.h: No such file or directory
    3 | #include "cmsis_os.h"
      |          ^~~~~~~~~~~~
../Core/Src/custom_memory_manager.c:13:10: fatal error: FreeRTOS.h: No such file or directory
   13 | #include "FreeRTOS.h"
      |          ^~~~~~~~~~~~
compilation terminated.
make[1]: *** [Core/Src/subdir.mk:46: Core/Src/custom_memory_manager.o] Error 1
compilation terminated.
make[1]: *** [Core/Src/subdir.mk:46: Core/Src/microros_allocators.o] Error 1
../Core/Src/main.c:25:10: fatal error: rcl/rcl.h: No such file or directory
   25 | #include <rcl/rcl.h>
      |          ^~~~~~~~~~~
compilation terminated.
make[1]: *** [Core/Src/subdir.mk:46: Core/Src/main.o] Error 1
make: *** [makefile:59: all] Error 2
"make -j4 all" terminated with exit code 2. Build might be incomplete.

20:09:19 Build Failed. 10 errors, 0 warnings. (took 5s.119ms)

I'm assuming it's something with step 3, and I've triple checked that I put the correct path at the correct place.
I also tried changing it to the absolute path, and adding "", or using ../micro_ros_stm32cubemx_utils/microros_static_library_ide/libmicroros/include like the other include paths have, but no luck.
I also checked the include map that everything is there.
The #include "FreeRTOS.h" is probably a separate problem, because in another project I made there is a Middleware map with FreeRTOS in it, and that can include it with no problem, so I should be able to solve that.
Any ideas about the other problems though?

Okay, I solved FreeRTOS.h and cmsis_os.h by clicking rebuild when the .ioc file was in focus. In FREERTOS->Advanced settings I changed USE_NEWLIB_REENTRANT to Enabled, and changed SYS->Timebase Source to TIM6, not sure if you're supposed to do this.
I also get some new problems this time:
20:30:48 **** Incremental Build of configuration Debug for project microROS_test ****
make -j4 all
docker pull microros/micro_ros_static_library_builder:foxy && docker run --rm -v /home/peter/STM32CubeIDE/workspace_1.7.0/microROS_test:/project --env MICROROS_LIBRARY_FOLDER=micro_ros_stm32cubemx_utils/microros_static_library_ide microros/micro_ros_static_library_builder:foxy
foxy: Pulling from microros/micro_ros_static_library_builder
Digest: sha256:33463a1857e63af0edf46178ddb2aeb9bb880a73a4e10fb03745a79751135198
Status: Image is up to date for microros/micro_ros_static_library_builder:foxy
docker.io/microros/micro_ros_static_library_builder:foxy
micro-ROS library found. Skipping...
Core/Src/microros_time.c: In function 'clock_gettime':
../Core/Src/microros_time.c:32:5: error: unknown type name 'TimeOut_t'
   32 |     TimeOut_t xCurrentTime = { 0 };
      |     ^~~~~~~~~
../Core/Src/microros_time.c:44:5: warning: implicit declaration of function 'vTaskSetTimeOutState' [-Wimplicit-function-declaration]
   44 |     vTaskSetTimeOutState( &xCurrentTime );
      |     ^~~~~~~~~~~~~~~~~~~~
../Core/Src/microros_time.c:48:47: error: request for member 'xOverflowCount' in something not a structure or union
   48 |     ullTickCount = ( uint64_t ) ( xCurrentTime.xOverflowCount ) << ( sizeof( TickType_t ) * 8 );
      |                                               ^
../Core/Src/microros_time.c:51:33: error: request for member 'xTimeOnEntering' in something not a structure or union
   51 |     ullTickCount += xCurrentTime.xTimeOnEntering;
      |                                 ^
make[1]: *** [Core/Src/subdir.mk:52: Core/Src/microros_time.o] Error 1
../Core/Src/main.c:26:10: fatal error: rcl/rcl.h: No such file or directory
   26 | #include <rcl/rcl.h>
      |          ^~~~~~~~~~~
compilation terminated.
make[1]: *** [Core/Src/subdir.mk:52: Core/Src/main.o] Error 1
make: *** [makefile:63: all] Error 2
"make -j4 all" terminated with exit code 2. Build might be incomplete.

20:30:52 Build Failed. 10 errors, 1 warnings. (took 4s.163ms)

The IDE is able to find these files when I ctrl + click them, so I'm not sure what's going on.

I now put in all the important things from sample_main.c into my code and I get these errors now:
20:51:48 **** Incremental Build of configuration Debug for project microROS_test ****
make -j4 all
docker pull microros/micro_ros_static_library_builder:foxy && docker run --rm -v /home/peter/STM32CubeIDE/workspace_1.7.0/microROS_test:/project --env MICROROS_LIBRARY_FOLDER=micro_ros_stm32cubemx_utils/microros_static_library_ide microros/micro_ros_static_library_builder:foxy
foxy: Pulling from microros/micro_ros_static_library_builder
Digest: sha256:33463a1857e63af0edf46178ddb2aeb9bb880a73a4e10fb03745a79751135198
Status: Image is up to date for microros/micro_ros_static_library_builder:foxy
docker.io/microros/micro_ros_static_library_builder:foxy
micro-ROS library found. Skipping...
Core/Src/microros_time.c: In function 'clock_gettime':
../Core/Src/microros_time.c:32:5: error: unknown type name 'TimeOut_t'
   32 |     TimeOut_t xCurrentTime = { 0 };
      |     ^~~~~~~~~
../Core/Src/microros_time.c:44:5: warning: implicit declaration of function 'vTaskSetTimeOutState' [-Wimplicit-function-declaration]
   44 |     vTaskSetTimeOutState( &xCurrentTime );
      |     ^~~~~~~~~~~~~~~~~~~~
../Core/Src/microros_time.c:48:47: error: request for member 'xOverflowCount' in something not a structure or union
   48 |     ullTickCount = ( uint64_t ) ( xCurrentTime.xOverflowCount ) << ( sizeof( TickType_t ) * 8 );
      |                                               ^
../Core/Src/microros_time.c:51:33: error: request for member 'xTimeOnEntering' in something not a structure or union
   51 |     ullTickCount += xCurrentTime.xTimeOnEntering;
      |                                 ^
make[1]: *** [Core/Src/subdir.mk:52: Core/Src/microros_time.o] Error 1
../Core/Src/main.c:26:10: fatal error: rcl/rcl.h: No such file or directory
   26 | #include <rcl/rcl.h>
      |          ^~~~~~~~~~~
compilation terminated.
make[1]: *** [Core/Src/subdir.mk:52: Core/Src/main.o] Error 1
make: *** [makefile:63: all] Error 2
"make -j4 all" terminated with exit code 2. Build might be incomplete.

20:51:53 Build Failed. 10 errors, 1 warnings. (took 5s.310ms)

I attached my project if you want to try it.
microROS_test.zip

It seems that you dont have /microROS_test/micro_ros_stm32cubemx_utils/microros_static_library_ide/libmicroros/include/ in your include path and thats why for example rcl/rcl.h is not being found

Neither /microROS_test/micro_ros_stm32cubemx_utils/microros_static_library_ide/libmicroros/include/ or /micro_ros_stm32cubemx_utils/microros_static_library_ide/libmicroros/include/ worked, but now when I tried ../micro_ros_stm32cubemx_utils/microros_static_library_ide/libmicroros/include, it works!
For some reason I had to manually include task.h in microros_time.c.
After this I got some other errors from the sample_main.c code, but after some googling I realized I had to turn on Connectivity->USART3. I picked Asynchronous.
Now it builds and I can flash it, but it won't connect to the micro-ROS Agent.
I guessing from sample_main.c that System Core->DMA->DMA1->USART3_RX and USART3_TX are turned on. So I did that as well with no problems.
From sample_main.c I also see the line PCD_HandleTypeDef hpcd_USB_OTG_FS, so I'm guessing it's Connectivity->USB, but when I turn that on, I get problems with the Clock Configuration that can't be resolved.
Thus I didn't turn it on and went ahead and built and flashed the project onto my board, but still no luck connecting to the micro-ROS Agent.
How do I solve the USB thing, or is it necessary? I attached my project again if you want to try.
microROS_test.zip

Okay, I was able to turn on Connectivity->USB by first turning on System Core->RCC->HSE->BYPASS Clock Source, and then clicking Resolve Clock Issues.
I now get PCD_HandleTypeDef hpcd_USB_FS, which is similar but not the same, not sure if it matters.
Built it and flashed it again, still won't work with the micro-ROS Agent.
I connected to the micro-ROS Agent using:

docker run -it --rm -v /dev:/dev --privileged --net=host microros/micro-ros-agent:foxy serial --dev /dev/serial/by-id/usb-STMicroelectronics_STM32_STLink_0670FF545150898367145119-if02 -v6

I have now created a new project, using the Board Selector (STM32F3DISCOVERY) instead of the MCU/MPU Selector.
I did steps 1-5 as usual, but at step 6 I can't get the stack size to 3000, only 768, so I set it to 700. I also edited the colcon.meta file to only use 1 node, 1 publisher, 1 history, and the others 0.
I forgot to look at step 7 in my previous project, so I followed it now, using U(S)ART with DMA.
After building and running I still can't connect to the Agent, so I debugged it to see what's wrong. I see that rclc_support_init takes a very long time to complete, and also returns a 1, meaning it failed. I'm not able to step into the function, so I can't figure out what's wrong.
Any ideas @pablogs9?
utils_test.zip

Is your code writing correctly to the serial port? Can you see data being sent using minicom or miniterm?

No I can't see anything, tried both minicom and miniterm. The flashed code is using printf, and I have set U(S)ART according to the instructions, with baud rate 38400.
miniterm correctly lists

1: /dev/ttyACM0         'STM32 STLink - ST-Link VCP Ctrl'
But nothing is printed even when I set the correct baud rate.

tty gives me /dev/pts/0, and stty gives me

speed 38400 baud; line = 0;
-brkint -imaxbel iutf8

I tried minicom with both /dev/ttyACM0 and /dev/ttyS0, but nothing is shown.

So the point is that your UART is not working properly. micro-ROS needs a well-configured UART:

Oh okay, was hoping Board Selector would fix that for me. I'll try to get a printf working then before testing with micro-ROS again.

Hi @pablogs9,
After a lot of struggling I've finally gotten printf to work, I just had to switch to USART1. I get a clean output from miniterm now.
The problem now is that it gets stuck on rclc_support_init. If I debug it and pause, I see that I'm stuck inside task.c.
After pausing the execution a few times, I see that it jumps between the functions static portTASK_FUNCTION, static void prvCheckTasksWaitingTermination, void vTaskSwitchContext and void vPortExitCritical.
Any idea what it might be this time?

How much stack have you configured for the micro-ROS task?

700, max is 768. I also tried with 720, I don't think I can go above that. When I put the stack at too low, like 100, I get stuck in ErrorDefaultHandler.

Could you share your latest code?

This one is made with the MCU Selector: micro_test.zip
I am able to go up to 710 stack, but when I go up to 720 I get stuck at osKernelStart instead of rclc_support_init.
I made a new one today with Board Selector, it actually gets through rclc_support_init, but returns 1. When it's on the rclc_support_init function it prints out:

~�XRCE5ԁ��~�XRCE5ԁ��~�XRCE5ԁ��~�XRCE5ԁ��~�XRCE5ԁ��~�XRCE5ԁ��~�XRCE5ԁ��~�XRCE5ԁ��~�XRCE5ԁ��~�XRCE5ԁ��

I have USART1 baud rate at 38400. This is the new project: full_test.zip
The max stack I could set for the task is 738 before the heap complains, but when I have it that high it just gets stuck at osKernelStart.

Where are you receiving this data? This is supposed to be received by the agent, if you have a minicom session, the agent won't receive it.

Yes that makes sense. I received it with the Command Shell Console in the IDE.
I tried it again now not receiving the data and used LEDs instead to know when rclc_support_init and the rest of the micro-ROS functions finished. Still not working.
I've tried putting lower stack sizes like 600 and 500 for FreeRTOS and not getting stuck, but agent still won't connect.
I now put in while (RMW_RET_OK != rmw_uros_ping_agent(1000, 1));, but it doesn't respond to me starting the agent. Might the problem be there? That it doesn't see the agent at all.
I start the agent with

docker run -it --rm -v /dev:/dev --privileged --net=host microros/micro-ros-agent:foxy serial --dev /dev/ttyACM0 -v6

Okay I don't know what's going on but it's working now. Somehow it only works if I first start the agent, then start either PuTTY or Command Shell Console, then restart the board.
If I don't start PuTTY or Console it doesn't work. I can disconnect the monitoring after connecting to the agent and it still works, and I can even restart the board and it instantly connects, but if I stop the agent I have to do the steps again.
It's easier to do if I have rmw_uros_ping_agent at the start, but I'm able to do it without it too.
I'm so relived I got this to work before my thesis starts, thank you so much!
If you don't mind, could you just explain what's going on, so I don't need to do these steps every time.
full_test.zip

This is not a normal operation, maybe it is related to some specific configuration of your computer.
Please report if you find some solution.
I'm closing, do not hesitate to reopen if you have further questions.

hey guys, i have the same problem

Which one?

i followed the instructions for STM32CUBEIDE and i get these errors:

but if i followed the steps provided by @pnn16004 I can compile the program but doesn't work, I think the problem is in the 10 kB of stack used by the task, because when i run a simple print over serial port, using 1200 of stack i can see that the peripheral is working fine, but when i change the 1200 by 12000 the program desnt work
the problem is not the memory capacity, I'm using a nucleo64 F303RE
here is the memory used:

If it works with 1200, why aren't you using that? It says in the instructions to use 10 kB stack but I think that's outdated #35 . I managed to do fine with 700 * 4 stack size.
What do you mean the program isn't working?

the simple serial:
while(1){
	HAL_UART_Transmit(&huart2, "HOLA", 4, 1000);
	osDelay(500);
	}

inside the task works (using 1200) but if change the task by the task provided by the example (the ros publisher) and run the ros agent using this command
docker run -it --rm -v /dev:/dev --privileged --net=host microros/micro-ros-agent:foxy serial --dev /dev/ttyACM0 -v6
no ros2 topic appears, that's why I said it doesn't work

Does it successfully connect to the agent or is it just that the topic isn't appearing?

This is the response of the agent

I get the same response if I run the micro-ros example or a simple led blink
My microcontroller gets freezes, I made some "debug" to see where is the problem and everything works fine before the function
rclc_support_init(&support, 0, NULL, &allocator);
after this function I can't turn on a led, the microcontroller just freezes
This should not happen since the code was compiled correctly

I had the same problem. Check the replies in this thread below the following comment:

Hi @pablogs9,
After a lot of struggling I've finally gotten printf to work, I just had to switch to USART1. I get a clean output from miniterm now.
The problem now is that it gets stuck on rclc_support_init. If I debug it and pause, I see that I'm stuck inside task.c.
After pausing the execution a few times, I see that it jumps between the functions static portTASK_FUNCTION, static void prvCheckTasksWaitingTermination, void vTaskSwitchContext and void vPortExitCritical.
Any idea what it might be this time?

I solved this issue using PuTTY, but you can also do it with the Command Shell Console inside STM32CubeIDE.

hi Same problem here.  Thanks for ur replay. Could u plz teach me how to solve it /


Update P2P port configuration in docker-compose.yml

Looks like its not an improvement / bug fix that we need :) thanks for the contribution.


Feat (bpdm-certificate-management) - Added new endpoints for retrieving and inserting Base64

Description
This PR adds two different endpoints for retrieving and inserting a document in Base64 format and with the relevant type (PDF, PNG or JPG).
Contributes to #4 and #5

Pre-review checks
Please ensure to do as many of the following checks as possible, before asking for committer review:

[ ] DEPENDENCIES are up-to-date. Dash license tool. Committers can open IP issues for restricted libs.
[ ] Copyright and license header are present on all affected files

We talked about this before but I will give a summary here. I won't stand in the way to merge this pull request but I really would advise against the current approach:
Having the document file directly attached to the metadata of the document is not such a good idea since I expect the files to be quite big in size. This limits your API alot in the long run. Also since, the document file is embedded in the certificate table it makes querying certificates very slow and inefficient.
If you want to keep that strategy because you always want to give out document files with your certificate I guess then this is the way to go. But since I have already seen use cases in which the document file is not required I think that's not the case.
Also, please be more specific about your naming. One time you refer with certificate document to the file and one other time to the whole certificate information including the document. Think about a consistent naming.

@nicoprow, yes by taking into consideration we have splitted  certificate and document entity and mapped with One to One relationship. Also there while retrieving there are separate models available.
Kindly take a look again let us know improvement.


Usage of "--options" in training command

Hi:
Thank you for the wonderful work, I have a question about the usage of the "--options" in training commands.
My understanding is the "--options" are used for the loss functions in "model/loss_functions/monorec_loss.py". but since the monorec_mask.json has defined the loss function as "mask_loss", which does not have the "stereo" option, why do we need to add "--options stereo" to train the mask module?
python train_monorec.py --config configs/train/monorec/monorec_mask.json --options stereo
Any clarification is greatly appreciated!

Hi!
thanks for showing interest in our work. You are right, mask loss doesn't consider the stereo option.
The reason it is there is probably because I copy & pasted the options flag to every training.
For the mask bootstrap step, it can be removed.
Best,
Felix


Extend VarCouldBeVal Rule to Include Class/Object Properties

Fixes #1330

VarCouldBeVal would run for the class/object variables also
Excluded variables having lateinit modifiers as they could be injected. Lateinit modifers are verified in LateinitUsage rule already.
Removed specific check for function.isSomehowNested . The corresponding tests still pass. Please let me know if this is needed for some other reason

Anyhow, I think we should merge this, but add some more test cases for this rule. I'm thinking of nested/inner classes and shadowed variables. What do you think @3flex ?

Shadowed variable test was covered. Renamed it properly. Added test for inner class as well

Before we merge this PR, I wanted to run this rule over the detekt codebase itself.
Run detekt on itself and other kotlin projects with the --run-rule RuleSet:RuleId option to test your rule in isolation

is mentioned in CONTRIBUTING.md. But i am unable to get it working. Is there any pre requisite to be done before this step ?

Before we merge this PR, I wanted to run this rule over the detekt codebase itself.
Run detekt on itself and other kotlin projects with the --run-rule RuleSet:RuleId option to test your rule in isolation

is mentioned in CONTRIBUTING.md. But i am unable to get it working. Is there any pre requisite to be done before this step ?

Got in running :) .

I would merge this into 1.2.0 after the 1.1.1 hotfix release.
I tried running this rule over detekt codebase. There were a bunch of issues being reported, Where few of them seem to be false negative.
Example:

All parameter variables in CliArgs.kt
Parameters in Detekt.kt that was set() methods defined like input and other similar issues.

Probably there are several more cases to exclude:

override property
Property with custom attribute, which will be used via reflection (I suggest this option in configuration).

However probably these items can be omitted to the next PRs


Hide keyboard while connected, as if with a physical keyboard

Hi. Can you make the phone identify scrcpy like a physical keyboard, to disable the software one? I've seen workarounds with scripts and fake-ish keyboard apps but they seem so convoluted, while with physical keyboards the behaviour is pretty consistent - no need for it when you got the real thing. Can you manipulate this 'flag' like that?
Feel free to disregard the feature request if it's a repeat, but I couldn't find anything that outlined this clearly.

It would also be nice to have a hotkey which makes the cursor inside the scrcpy window serve as an actual mouse to android. Some applications have a better interface for mouse than touch.

Some suggestion: what if you install null keyboard (from app store). It display nothing. Other options the one i'm using now is ADB keyboard. Helps me to send alphanumeric and android commands / shortcut via ADB where scrcpy still needs time to fix the issue.

Installing KDE Connect from playstore and on your OS, will help to identify
your keyboard as a physical keyboard, and not show the virtual one.
KDE Connect created by KDE. Works on all DEs, special features on Plasma

@colicrod I was doing this but it's not the most optimal. Null has the extra issue of needing to dive into settings to enable your soft keyboard again since Android doesn't identify it, by design.
@srevinsaju haven't heard of your solution, I'll test it later.
I'll see how android works when you connect an USB keyboard with an USB-OTG adapter that I found, and report back. If you can send the same info through scrcpy maybe you can trigger this behaviour. However I wonder if when the connection is broken this would be able to revert itself.

Just found this, maybe this can help the development https://github.com/senzhk/ADBKeyBoard

I forgot to report my tests with OTG.
Seems that GBoard implemented some features for physical keyboards, and with that a bar to harbor those. Kinda neat, but doesn't help with the clutter issue I had in mind. I didn't test it thoroughtly however.

KDE connect seems to be more of an effort than using null keyboard, which btw works great for me.

I think simulating a physical keyboard might be the best solution for many non-English users for typing. When a physical keyboard is connected to the phone, the candidate words are shown without the soft keyboard. The number keys can also be used to choose the word.

completely agree with having the option to emulate physical keyboard and this way to disable gboard once scrcpy connected to phone...
this way there will be also automatic restore of the original keyboard once usb cable disconnected.
Which unfortunately is not the  case if using the workaround script. For that properly working you need firstly close scrcpy and adfterwards disconnect phone...

When connecting over TCP/IP the --hid-keyboard option won't work, so I do this before starting scrcpy to keep the annoying on-screen keyboard from popping up and covering half the screen:
adb -s <IP_ADDRESS>:5555 shell pm disable-user com.google.android.googlequicksearchbox
adb -s <IP_ADDRESS>:5555 shell pm disable-user com.google.android.inputmethod.latin
The on-screen keyboard was disabled with com.google.android.inputmethod.latin but I also had to disable com.google.android.googlequicksearchbox otherwise it made voice typing the keyboard that would start and cover half the screen.
Then after scrcpy is done, I can re-enable those things, but I'll probably just leave the googlequicksearchbox disabled and uninstall any byte wasting updates to it since I never use it:
adb -s <IP_ADDRESS>:5555 shell pm enable com.google.android.googlequicksearchbox
adb -s <IP_ADDRESS>:5555 shell pm enable com.google.android.inputmethod.latin
Obviously if you do this, you'll have to use your device's proper serial (ip address and port.) On other devices and android versions the packages might have other names, or you might have other keyboard related packages to look for. To find what those packages are named, you can look through the list from:
adb -s <IP_ADDRESS>:5555 shell pm list packages
A good starting point would be just to look for packages I disabled, or similarly named packages.


Re-write ReadTheDocs using Push-Redux as background knowledge.

Now that the Push-Redux has most of its content, we can simplify and the Pysh ReadTheDocs by referencing the redux.

Done in fc72ebb3b4d9a1d2dae4bfc5c13c00eaaeb20ea4


camera is freeze after some time spent work

in random the camera is freeze. but webboard still works well
i've try to send mqtt action reboot - it wasn't help (
as i suggest to fix:
setup some timer or  cron to be able to set some scripts to run?
or you the boss ;-)

Same problem here... did you find a solution?

Use this script https://t.me/mjsxj02hl_firmware/7560


Feature/cards

Extends cards with adjustments and elements that showed to be needed in public frontend.

@jayhof yes, padding in general should be discussed. There is also a discussion concerning publications pending. But let's do this after the Netzwerktreffen.
I used !important for now, though I know it shouldn't be needed here. This might well change without the mappings. Honestly, I didn't take the time to dig deeper. Usually if box shadow is applied to card and you add a class shadow-soft this should overwrite the cards shadow. I need to have a look why this is not the case.


API to accept and use precompiled shader

Operating System

[ ] Windows
[ ] macOS
[ ] Linux
[ ] FreeBSD
[ ] OpenBSD
[ ] Android
[ ] iOS
[ ] Nintendo Switch
[X] PlayStation 5
[X] Xbox
[ ] Web Browsers

What feature would you like to be added?
On consoles, compiling shaders is possible but takes long (Xbox), or, is probably impossible (PS5) 😢. We might need a tool to precompile shader and APIs to use them...
Why is this needed?
For some special environments where dynamic compiling shaders is difficult.

Hello. Consider adding an API to use your shaders.
Without a doubt, this feature will be for experienced developers and will open the way to the world of shaders. Naga, wgsl and other community tools. I like Kage, but it's good to have an alternative..

To minimize an impact of the existing APIs, I suggest this API:
// AddPrecompiledShader adds a pair of a shader source and a shader binary.
// When a new shader is created by NewShader,
// Ebitengine tries to seek the pair that has the same shader source.
// If there is such a pair, Ebitengine uses a registered shader binary for the same shader source instead of compiling it.
//
// AddPrecompiledShader is useful to shoten the shader compile time, or even necessary in an environment
// where you cannot compile a shader on the fly.
func AddPrecompiledShader(kageShaderSource []byte, nativeShaderBinary []byte)

OpenGL: It is impossible to precompile shaders. AddPrecompiledShader should always return an error.
DirectX: A native shader binary is the result of D3DCompile. This function returns ID3DBlob, and this can be converted to a byte slice, and be created via D3DCreateBlob. A vertex shader and a pixel shader are separated.
Metal: A native shader binary is a .metallib format. This can be used at makeLibrary for NSData. See also https://developer.apple.com/documentation/metal/shader_libraries/building_a_shader_library_by_precompiling_source_files. A vertex shader and a fragment shader are NOT separated. So, Ebitengine would have to expose the binary for a vertex shader? Hmm.

Instead of exposing the the vertex shader, would this work?
func CompileShaderToNativeSource(kageShaderSource []byte, graphicsLibrary GraphicsLibrary) ([]byte, error)

// Compiling a native source to a native binary is a developer's responsibility.

func AddPrecompiledShader(kageShaderSource []byte, nativeShaderBinary []byte, graphicsLibrary GraphicsLibrary) error

Compiling and using a shader
in a pseudo Go-like code.
OpenGL
vertex_shader_source, fragment_shader_source = glsl.Compile(ir)
vertex_shader = glNewShader(vertex_shader_source)
fragment_shader = glNewShader(fragment_shader_source)
program = glNewProgram(vertex_shader, fragmen_shader, array_buffer_layout_names)

Metal
src = metal.Compile(ir)
lib = MakeLibrary(src)
vertex_function = MakeFunction(lib, vertex_name)
fragment_function = MakeFunction(lib, fragment_name)

See also:

https://developer.apple.com/documentation/metal/shader_libraries/building_a_shader_library_by_precompiling_source_files?language=objc

DirectX
vertex_shader_source, pixel_shader_source, offsets = hlsl.Compile(ir)
vertex_blob = D3DCompile(vertex_shader, name, ...)
pixel_blob = D3DCompile(pixel_shader, name, ...)

See also:

https://learn.microsoft.com/en-us/windows/win32/direct3dtools/dx-graphics-tools-fxc-using
https://learn.microsoft.com/en-us/windows/win32/direct3d11/how-to--compile-a-shader

Proposal (TBD)
As there are various ways to compile and use shaders in different environments, the precompilation APIs should be separate for each environment unfortunately.
package precompiledshader // Too long?

func CompileToHLSL(kageSource []byte) (vertex []byte, pixel []byte, error)

func RegisterDirectXShaderBlobs(kageSource []byte, vertexBlob []byte, pixelBlob []byte)

func CompileToMSL(kageSource []byte) ([]byte, error)

func RegisterMetalShaderLibrary(kageSource []byte, library []byte)

After #2999 is closed, the APIs are:
package shaderprecomp

func AppendBuiltinShaderSources(sources [][]byte) [][]byte

func CompileToHLSL(vertexWriter, pixelWriter io.Writer, kageSource []byte) error

func RegisterFXCs(id ShaderSourceID, vertexFXC []byte, pixelFXC []byte)

func CompileToMSL(w io.Writer, kageSource []byte) error

func RegisterMetalLibrary(id ShaderSourceID, library []byte)

With https://github.com/hajimehoshi/ebiten/issues/2984, I realized some considerations:

Builtin shaders don't have to or should not be exposed.
The shader complation processes like what the examples/shaderprecomp does can be provided by this package

Thus, until I decide a better API design, I'd like to retract the package once. I might postpone the milestone for release.


Any suggestion on where to upload my own customized toots.css?

I'm having trouble getting anything to work other than the original<EMAIL_ADDRESS>link. I tried linking the "raw" css url from a personal repo on GitHub and DropBox but both won't work.
Currently I have this Mastodon feed embedded on my Wordpress blog, but the username and date is overlapping so I wanted to set   .toot .user {     display: inline; to inline and also change a few colours and appearance settings.
Can anyone help? Thanks a lot in advance.

Hmm, maybe you could provide a little more detail about what things look like in the Developer Tools? Can you check that (a) your CSS is actually being loaded, and that (b) the rules are actually getting applied? Sometimes I like to try something incredibly obvious like .toot { background: pink; } to see if the CSS is actually active at all…

When I used Wordpress in the past there was a way to directly enter custom CSS in the settings. Did you try that too? For example with what @sampsyo suggests to make it obvious the rule is loaded on the page.

Thanks @sampsyo and @bibz!! I ended up using the CSS Editor via Styles and pasted my changes in the "Additional CSS", and removed the line <link rel="stylesheet" type="text/css"<EMAIL_ADDRESS>from the HTML embed. Thanks so much again. Have a great week.


[improvement] can add wechat for sharing plugin

Hi guys,
I just wonder whether your plugin can add "WeChat" sharing link to gitbook ?
Here most of people use mobile phone to read articles via WeChat tool ;)
Thanks a lot ~~
Patrick

Hello, I close this in favor of https://github.com/GitbookIO/plugin-sharing/issues/3


Question: PullAsync POST Request instead of GET

Hey,
as described in the article (https://docs.microsoft.com/en-us/azure/app-service-mobile/app-service-mobile-dotnet-how-to-use-client-library) an IMobileServiceTableQuery object is first converted to a URL (OData Query) and then back to SQL server-side.

You can view the URI of the request sent to the backend by using message inspection software, as well as browser developer tools or Fiddler. If you look at the request URI, notice that the query string is modified:
GET / tables / todoitem? $ Filter = (complete + eq + false) HTTP / 1.1
This OData request is in SQL query by the Server SDK:
SELECT *
    FROM TodoItem
    WHERE ISNULL (complete, 0) = 0

... our SQL queries usually look like:
SELECT *
FROM tbl_Appointment
WHERE (APM_ID = xyz OR APM_ID = abc OR APM_ID = ghf ....)
APM_ID (data type = Guid) is the primary key of the table. Overall, this results in a very long chain for the Where condition which then has to be converted to a URL. This leads to a bad request because the URL is too long (https://docs.microsoft.com/en-us/iis/configuration/system.webserver/security/requestfiltering/requestlimits/). Currently we proceed in such a way that we query maximally 5 PrimaryKey Ids in the Where condition. If, for example, 1000 Ids are to be queried, this alone leads to 200 HTTP requests by our code (irrespective of the fact that the PullAsync makes further internal queries because of the 50s PageSize). We would like to minimize the HTTP requests that we generate directly.
I had asked that question to Stackoverflow nearly a year ago. Unfortunately, there was little response from other developers here: https://stackoverflow.com/questions/43539199/azure-appservice-imobileservicetablequery-query-with-much-ids
A developer made the suggestion to pass the Where condition in the HTTP request body and not to attach it to the URL but I did not find out how it would be possible with the Azure SDK.
Is it possible to pass queries with such large and long Where conditions to the Azure backend? A Custom API Function is out of the question. It must continue to run in the offline sync context.
Thanks.

Hello. Your issue title is a little bit misleading.
I do not think that this is possible without a lot of customization on the Mobile Service pipeline.
While using the TableController you can use post only for content creation.
I see you are using OR on your WHERE statement. You maybe could use some other function that would make the same result ?

I had contact with the Microsoft Azure tech support. It is not possible. So you are absolutely right.


Update keyboard-shortcut-sequences extension

Description
The updateCount method was only able to ADD shortcuts, not REDUCE them.
And I needed to use a left arrow, which was only doable with key code 123. So this enables using key codes.
Screencast

Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

Hi! Thank you so much for your contribution to Raycast!
My name is Milena and I will be reviewing your change today :)
It looks good to me, it is indeed a needed change. @SKaplanOfficial what do you think?

Looks good to me. Thanks for adding this 🙂


Tensorflow with TCMalloc

TCMalloc seems to improve training speed and avoids occasional slowdowns seen with the default allocator. You can enable it by installing it and setting LD_PRELOAD=/usr/lib/libtcmalloc.so.

@keithito are there some docs or experiments/benchmark to show this conclusion? does this depend on the version of tensorflow?

Sorry, I don't have any real benchmarks. But anecdotally, without tcmalloc, I was getting ~1.2 sec/step, and then maybe 25% of the time, things would slow down a lot to ~2 sec/step. htop showed a lot of time spent in kernel threads. After switching to tcmalloc, I consistently get ~1.1 sec/step all the time. I've only tried this with Tensorflow 1.2.
There's some discussion of a similar issue here:
https://github.com/tensorflow/tensorflow/issues/3009#issuecomment-235993119

thanks for your comment, I will have a try.


import process issue

Hi,
I encountered an issue during the import process while working with Dokdo. I followed the tutorial to write the code and executed it.
Here is my code:
import dokdo
import matplotlib.pyplot as plt

qzv_file = "taxa-bar-plots.qzv"

dokdo.taxa_abundance_bar_plot(qzv_file, level=2, count=8,figsize=(9,7))

plt.tight_layout()

However, I noticed a problem with the import section of the Dokdo/api/ordinate file during execution.
ImportError: cannot import name 'diversity_lib' from 'qiime2.plugins' (~/envs/qiime2/lib/python3.8/site-packages/qiime2/plugins.py)
It fails to recognize the following part:
from qiime2.plugins import diversity_lib
from qiime2.plugins import feature_table
from qiime2.plugins import diversity

I am using Python version 3.8.17 and have installed Qiime2 and Dokdo in a virtual environment. Qiime2 is at its latest version, 2023.7.
Is there anything I might have done wrong while using it?
Or could this be a problem caused by Dokdo not being updated?
If it's the latter, I'm curious if there are any plans for an update.
Thank you.

Here is the additional information:
I installed Qiime2 using the command: conda install -c qiime2 qiime2
For Dokdo installation, I followed the instructions in the 'Getting Started' section:
$ git clone https://github.com/sbslee/dokdo
$ cd dokdo
$ pip install .

@yeon-y,
Thanks for providing all the details. QIIME 2 requires many tools and plugins to run, and I don't think the command $ conda install -c qiime2 qiime2 installs all the required packages. Please follow their installation guide and reinstall QIIME 2 in the proper way. Please let me know if the problem still persists.

Hello, @sbslee
I hope this message finds you well. I wanted to express my gratitude for your assistance. I encountered an unexpected conflict issue on my server, which prevented me from downloading files using wget. So I try to install qiime2 using the command:$ conda install -c qiime2 qiime2.
As a solution, I followed your advice and downloaded the required files. It turns out that the issue with Dokdo not functioning correctly was related to the installation method. Following your guidance, I downloaded Qiime2 with official guide, and now Dokdo runs smoothly without any issues. I appreciate your support in providing such a valuable visualization tool.
And I have another question. Is there a way to use the pretty_taxa feature when creating a bar plot with taxa_abundance_plot? I'd like to display only genus and species names by using level=[6,7]. If this feature is not currently supported in Dokdo, I'll try alternative methods and sharing the results.
Additionally, I have a question regarding the read_quality plot. I noticed that the tutorial demonstrates creating a boxplot-like graph, but I'm curious if it's possible to generate a histogram for Demultiplexed sequence counts summary. If this functionality is not currently available, I'm also willing to experiment with different approaches and share the outcomes.
Thank you once again for your assistance.

@yeon-y,
As for the dokdo.taxa_abundance_bar_plot method, you can do the following:
import dokdo
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
sns.set()

qzv_file = '/Users/sbslee/Desktop/dokdo/data/moving-pictures-tutorial/taxa-bar-plots.qzv'

dokdo.taxa_abundance_bar_plot(
    qzv_file,
    figsize=(10, 7),
    level=7,
    count=8,
    legend_short=True,
    pname_kws={'levels': [6, 7]}
)

plt.tight_layout()

As for your second question, I think the dokdo.denoising_stats_plot method could be what you are looking for. Please see the method's documentation page.

Closed due to inactivity. Please feel free to re-open it if necessary.


Re-release quil-rs/0.18.0 and quil-py/v0.2.0 as 0.19.0/0.3.0

knope failed to create tags for what should have been quil-rs/v0.18.0 but proceeded to create pre-releases for 0.19.0. This led to an issue where we were publishing 0.19.0 pre-releases without having published 0.18.0. Since knope bases full releases off git tags, the next full release caused 0.18.0 to be released. The story is the same for quil-py/v0.3.0
This means that 0.18.0 is the latest full release, but we have existing pre-releases for 0.19.0. some of which actually track versions before 0.18.0. We should yank the 0.19.0 pre-releases and re-publish 0.18.0 as 0.19.0 to get back on track. Same for quil-py.

As a follow-up, we should understand why knope failed to create a tag in the first place.

This is the knope log for what should have been 0.18.0. It looks like a normal run and reports no error. According to the knope documentation the release step should always create a tag and returns an error if it can't. It seems like knope might have a bug where creating a tag silently fails.

Asked about this in knope#507


Disable default plotly theme in gapminder demo

This makes the plotly gapminder plot look like it did before plotly.py version 4.

Thanks!

To build the website version of a project, do git commit --allow-empty -m "build:gapminders", then if the dev website looks good,  do git commit --allow-empty -m "build:website_release"


spelling error for stationery at a lot of places

Assign the issue to me i'll fix the error

pl do assign me