Revisit search in names only (⎕NL)

Obviously the tab ⎕NL can be confusing, in particular when the user closes Fire without switching back to the "Workspace" tab and then later does not realize that after a restart ⎕NL is still the selected tab.
Therefore it might be better to move the name search feature to the "Report" menu. Not ideal either because it does create a new hit list!
Alternatively after a restart the "Workspace" tab could become automatically the active one.
Another option is to associated an icon with the Tabs "Workspace" and ⎕NL but to display the icon only with the active Tab.

Done


about make GIF

Hi，i have some questions want to ask you。
How to make the GIF moving graph in MATLAB?

Hi，i have some questions want to ask you。
How to make the GIF moving graph in MATLAB?

Check out the below link:
https://www.mathworks.com/matlabcentral/answers/94495-how-can-i-create-animated-gif-images-in-matlab


Provide i18n instance even when serverSideTranslations is not used

Is your feature request related to a problem? Please describe.
When using getStaticPaths with fallback: true the fallback page does not run getStaticProps however I still want to render the translations for my _app or other components like loading spinner test using my i18next configuration.
I can do it using i18next-http-backend as I do with a few parts of my UI, however in this case the configuration is not loaded and i get the warning:

react-i18next:: You will need to pass in an i18next instance by unsing initReactI18next

Because next-i18next only adds the I18NextProvider if _nextI18Next is present in pageProps.
Describe the solution you'd like
Always wrap with the I18NextProvider just don't provide any server side translations.
Describe alternatives you've considered
I could wrap with my own instance but I don't see a reason next-i18next should't always provide the i18n instance.
Additional context
This would also mean that dynamic routes that don't want to use getStaticProps/getStaticPaths could still utilize the same i18n instance/configuration to fetch their translations client-side.

+1. I'd like this for cases with dynamic routes where using getStaticPaths just isn't feasible and getServerSideProps causes unnecessary latency. For instance if you have a user specific dashboard (located at like /projects/[id]) where all data is loaded on the client.
There's one better solution and that is for Next.js to make it possible to use getStaticProps without getStaticPaths for dynamic routes but I don't see that happening anytime soon: https://github.com/vercel/next.js/issues/14200

What is the current way of doing for dynamic routes that do not require getStaticProps or getServerSideProps?
Nextjs requires to have getStaticPaths if getStaticProps is used. I could use this solution with fallback: true but considering that serverSideTranslations is the only props in getStaticProps, it will build exactly the same file over and over again and I will end up with 1000s of identical pages. Am I missing something?

Fetching translations client side is a huge requirement for us since we load components dynamically and they define the namespaces required. It was recommended to use  i18next-http-middleware https://github.com/isaachinman/next-i18next/issues/1004#issuecomment-790013130 to achieve this however i was not able to make it work by simply including it in config.use. @isaachinman Would you be able to provide more details about how this needs to be wired up? Much appreciated!

@skrivanos and @njarraud There is currently not a possible solution for this, I didn't have time to work on a PR yet, however it probably would be necessary to use the overrideConfig parameter in appWithTranslation.
@dcodus You actually have to use i18next-http-backend not the middlware, you have to pass the config to appWithTranslation as overrideConfig, also don't forget to set partialBundledLanguages to true, to allow both server and client site translations, and to check typeof window !== "undefined" before including the backend to only include it on the client side.

@jvcmanke Thank you! Everything works as expected now!

Quick question, based on reading these issues + the documentation, I have the following set up. I feel like I'm close but I keep getting a react-i18next:: You will need to pass in an i18next instance by using initReactI18next -- am I missing something to get this working?
// next-i18next.config.js

const i18nextHttpBackend = require('i18next-http-backend').default;

module.exports = {
  i18n: {
    defaultLocale: 'en',
    locales: ['en', 'fr', 'es']
  },
  partialBundledLanguages: true,
  use: process.browser ? [i18nextHttpBackend] : []
};

// app.tsx

import { appWithTranslation } from 'next-i18next';
const nextI18NextConfig = require('../../next-i18next.config');

export default appWithTranslation(App, nextI18NextConfig);

// index.tsx

import { useTranslation } from 'next-i18next';

const { t } = useTranslation('homepage');

<h1>
  {t('heroTitle')}
</h1>

@austinhale You are missing serverSideTranslations in your index.tsx file. The serverSideTranslations is the key function which reads translation data from the filesystem (or remote API, if specified), and passes it into your NextJs app as props.

@isaachinman I’m new to the library so I’m still getting up to speed. Are you saying I should include the serverSideTranslations function and depending on the process.browser ternary, that will dictate whether the transaction actually occurs server side vs client side http?

@austinhale Yes, if you want to use i18next-http-backend (not sure why you do), then that flow would make sense.

@isaachinman  What if I am redirecting to another component from server.js or index.js file then how can I receive props in that component provided that I amj not passing any props on redirecting to the component but just using simple resirectTo: '/specificComponent'. How can I ensure that useTranslation can be utilized in the redirected component and it must be initialized with the translations that are in locales

@austinhale You are missing serverSideTranslations in your index.tsx file. The serverSideTranslations is the key function which reads translation data from the filesystem (or remote API, if specified), and passes it into your NextJs app as props.

@isaachinman Hi, I have been searching hopelessly (in all closed/old issues) for any example of fetching translations from a remote API; I know it's not really to do with this lib but just documentation for i18next doesn't suffice either. Could you please point me in the right direction? You mention here it should be possible.
My current setup is as follows:
`
// next-i18next.config.js
const i18nextHttpBackend = require("i18next-http-backend").default;
module.exports = {
i18n: {
defaultLocale: "en",
locales: ["en", "nl"],
},
use: process.browser ? [i18nextHttpBackend] : [],
backend: {
loadPath:
// this is a mock for now
"https://virtserver.swaggerhub.com/translations/public/{{lng}}/{{ns}}",
},
serializeConfig: false,
};
`
In _app I manually pass the config into appWithTranslation as described in the README.
From the docs for i18next-http-backend here  it is not clear to me what options I should be passing in to load my translations. Could you please explain how this is compatible with serverSideTranslations ? Any tips would be highly appreciated.

Hey @annbeemsterboer — I'm out of office until next week, but I believe @adrai has an example of using Locize as a backend?

@annbeemsterboer This next.js example with i18next-locize-backend may help: https://github.com/locize/next-i18next-locize
If you have i18next-http-backend, just replace i18next-locize-backend with i18next-http-backend and define your specific loadPath.

@adrai thanks for the example! I keep getting the error TypeError: Cannot read property 'type' of undefined, which means the instance of class I18NextHttpBackend is undefined here.
module.exports = {     i18n: {         defaultLocale: "en",         locales: ["en", "nl"],     },     backend: {         loadPath:             "https://virtserver.swaggerhub.com/translations/public/{{lng}}/{{ns}}",         crossDomain: true,     },     use: [require("i18next-http-backend").default],     ns: ["common", "getstarted"],     debug: true,     serializeConfig: false, };
my package.json contains
 "next-i18next": "8.1.3", "next": "10.0.9", "i18next-http-backend": "^1.2.1"
Do you have any ideas?

instead of require("i18next-http-backend").defaul write require("i18next-http-backend/cjs")

Thanks a million!

@isaachinman Hello!
I have done an upgrade of Next to 12 version, and also upgrade the next-i18next package to the latest - 10.2.0.
I have done all the migration due to the docs.
next-i18next.config.js
const nextI18next = require('next-i18next')
const i18nextMiddleware = require('i18next-http-middleware')
module.exports = {
i18n: {
defaultLocale: 'en',
locales: ['en', 'pt-BR', 'ru'],
},
defaultNS: 'common',
fallbackLng: 'en',
localeDetection: false,
reloadOnPrerender: isLocalEnv,
saveMissing: true,
serializeConfig: false,
use: [i18nextMiddleware.LanguageDetector],
detection: {
caches: ['cookie'],
lookupCookie: 'i18next',
order: ['cookie', 'path', 'header'],
}
}
next.config.js
const { i18n } = require('./next-i18next.config')
module.exports = { i18n }
Than I wrap the  _app.js component as in docs, need to handle config due to unserialisable config:
export default appWithTranslation(withMobx(getStores)(MyApp), nextI18NextConfig)
And in index page provide new syntax with serverSideTranslations. I can import {useTranslation} from 'next-i18next' - it works.
BUT In component I have an error with:
import { i18n } from 'next-i18next'
In render method I am using: i18n.language and it gives an error, as i18n is null.
 TypeError: Cannot read properties of null (reading 'language')

I just realise that there is no i18n object while server side rendering. In _app component it is null, but on client rendering, after f5 update - it exists.
Is there any configuration that I need to have i18n object while server rendering?


can't come out of full-screen-layout.py example on osx

Ctrl-C nor Ctrl-Q or Ctrl-Shift-Q had any effect.
Also after killing the process from another window, Ctrl-C/Ctrl-D was not getting passed to shell from where I launched the process.

Hi @amitu ,
ControlQ and ControlS are reserved key bindings in many terminals.
Try to execute stty -ixon before running the example. This should disable flow control.
Probably I should have used another key binding to demonstrate.
It is possible that some key sequences don't work anymore after killing the process. Prompt-toolkit turns the terminal into raw mode, and because it's killed it can't restore it. Try to execute reset followed by enter in the terminal. That should restore it.
Jonathan

@jonathanslenders thanks.


Work on docs (Take 1)

Fixes #7

Merge ended up a bit messier than expected even though the changes so far were pretty small, going to start over in a new PR.


feat(fsapp): add fsapp plugin

Describe your changes

Issue ticket number and link

Type of change
Please delete options that are not relevant.

[ ] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

Test Plan

Checklist before requesting a review

[ ] A self-review of my code has been completed
[ ] Tests have been added / updated if required
[ ] Documentation has been updated to reflect these changes

requires .flagshipcoderc.json
no longer needs envPath in flagship-code.config.ts

We should utilize glob to find all files that match env.<env_name>.ts and then use babel to traverse and verify single default export with the correct import of defineEnv.


Dependency management problems: An illegal reflective access operation has occurred

I am trying to get a development environment set up with this plugin and coc.nvim for an Android/ReactNative project. Linting seems to work, but the dependency management always fails and I get a lot of UNRESOLVED REFERENCE errors. The logs show the warning 'An illegal reflective access operation has occurred' which might be contributing to the problem. Here's the complete logs (quietmodem is the name of my project):
## Output channel: languageserver.kotlin
[Info  - 15:57:12] main      Connected to client
[Info  - 15:57:12] client    Adding workspace file:///path/to/project/android to source path
[Info  - 15:57:13] client    Adding .../quietmodem/QuietModemPackage.kt, .../quietmodem/QuietModemManager.kt, .../quietmodem/QuietModemModuleTest.kt, .../quietmodem/QuietModemModule.kt under /path/to/project/android to source path
[Info  - 15:57:13] client    Searching for dependencies in workspace root /path/to/project/android
[Info  - 15:57:13] client    Resolving dependencies for android through Gradle's CLI...
[Info  - 15:57:13] client    Creating temporary gradle file /tmp/classpath11746750311239564069.gradle
[Info  - 15:57:13] client    Found gradle at /path/to/sdkman/candidates/gradle/current/bin/gradle
[Info  - 15:58:37] client    Successfully resolved dependencies using Gradle dependencies CLI
[Info  - 15:58:39] client    Could not resolve kotlin-stdlib using Maven: null
[Info  - 15:58:39] client    Successfully resolved kotlin-stdlib using Gradle
[Info  - 15:58:39] client    Adding [/opt/android-sdk-linux/platforms/android-28/android.jar, /path/to/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.31/11289d20fd95ae219333f3456072be9f081c30cc/kotlin-stdlib-1.3.31.jar] to class path
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.intellij.openapi.util.io.FileSystemUtil$FallbackMediatorImpl (file:/path/to/KotlinLanguageServer/server/build/install/server/lib/kotlin-compiler-1.3.11.jar) to field java.io.File.fs
WARNING: Please consider reporting this to the maintainers of com.intellij.openapi.util.io.FileSystemUtil$FallbackMediatorImpl
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

[Info  - 15:58:40] debounce0 Linting .../quietmodem/QuietModemModuleTest.kt
[Info  - 15:58:52] debounce0 Reported 18 diagnostics in QuietModemModuleTest.kt
[Info  - 15:58:52] debounce0 Ignore 4 diagnostics in QuietModemModule.kt because it's not open

Here is the contents of /path/to/project/android/build.gradle (as is common with React-native projects, the Android-specific code, including build.gradle, is in the /android directory within the project):
buildscript {
    ext {
        kotlinVersion = '1.3.31'
        androidToolsVersion = '3.2.1'
    }

    repositories {
        google()
        mavenCentral()
    }

    dependencies {
        classpath "com.android.tools.build:gradle:${project.ext.androidToolsVersion}"
        classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:${project.ext.kotlinVersion}"
    }
}

apply plugin: 'com.android.library'
apply plugin: 'kotlin-android'

repositories {
    google()
    jcenter()
    maven {
        // All of React Native (JS, Obj-C sources, Android binaries) is installed from npm
        url "$rootDir/../node_modules/react-native/android"
    }
}

sourceSets {
    main.java.srcDirs = ["src/main/java"]
    test.java.srcDirs = ["src/test/java"]
}

android {
    compileSdkVersion 28

    defaultConfig {
        minSdkVersion 19
        targetSdkVersion 28
        versionCode 1
        versionName "1.0.0"
    }
    lintOptions {
        abortOnError false
    }
    testOptions {
        unitTests.all {
            useJUnitPlatform()
        }
    }
}

dependencies {
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8:${project.ext.kotlinVersion}"
    implementation "com.facebook.react:react-native:+"  // From node_modules
    testImplementation "org.junit.jupiter:junit-jupiter-engine:5.4.2"
    testImplementation "io.mockk:mockk:1.9.3"
}

The test file that I am trying to lint imports io.mockk, org.junit.jupiter and com.facebook.react (all of which are specified in build.gradle as either implementation or testImplementation). Under gradle build all of these imports work, but the linter cannot seem to find these dependencies. I am not directly importing com.android but I have tested it and it seems to work without issue.

[Info  - 15:58:39] client    Adding [/opt/android-sdk-linux/platforms/android-28/android.jar, /path/to/.gradle/caches/modules-2/files-2.1/org.jetbrains.kotlin/kotlin-stdlib/1.3.31/11289d20fd95ae219333f3456072be9f081c30cc/kotlin-stdlib-1.3.31.jar] to class path

Apparently only android and the standard library are found by the language server, which is the reason why other imports are flagged as unresolved.

Last time I tried running this setup against a React Native project I also had dependency issues. I haven't had the time to pursue getting their pretty specialized setup working 😒
Their Gradle config is pretty complex, so it's likely doing something non-typical that we're choking on. I'm personally waiting for them to calm down on some of the major changes going on and I'll be able to look into this further. Anyone else is free to look into it though in the meantime


Maven recipe: Migrate usage of ${artifactId} to ${project.artifactId}

What problem are you trying to solve?
Handle the following Maven deprecation warning

[WARNING]
[WARNING] Some problems were encountered while building the effective model for xxx
[WARNING] The expression ${artifactId} is deprecated. Please use ${project.artifactId} instead.
[WARNING]
[WARNING] It is highly recommended to fix these problems because they threaten the stability of your build.
[WARNING]
[WARNING] For this reason, future Maven versions might no longer support building such malformed projects.

Describe the solution you'd like
Instances of ${artifactId} should be replaced with ${project.artifactId}
Additional context
This properly can be used in many places within a maven build. For example, besides the pom.xml file, it is possible to define this in assembly.xml and possibly other files
Examples :
pom.xml

<build>
        <finalName>${artifactId}</finalName>
</build>

assembly.xml
 <file>
            <source>target/${artifactId}.jar</source>
            <outputDirectory>output</outputDirectory>
            <destName>${artifactId}.jar</destName>
        </file>

AFAIK the same applies to $version unless we already have a recipe for that.

AFAIK the same applies to $version unless we already have a recipe for that.

Should that be a separate recipe or the same?

IMHO it should be part of the same recipe. I doubt anyone wants to keep either on these on purpose.

Isn't this a duplicate of https://github.com/openrewrite/rewrite/issues/1621 ?

Isn't this a duplicate of #1621 ?
Yeah. Closing

Thanks for pointing it out

No worries; thanks for helping keep the backlog free from duplicates by closing this one. :)
I think it should be relatively straightforward to implement https://github.com/openrewrite/rewrite/issues/1621 , if that's something you'd like to take on. Even just having some tests would help. Or else perhaps @AlekSimpson can help out.


[example] Added starting Thread in nrfconnect examples.

Problem
In nrfconnect lock and lighting apps Thread joining was temporary solution. Device after pressing button should start Thread with default settings instead of starting Thread joiner.
Summary of Changes

Removed starting Thread joiner after pressing button.
Added starting Thread with default settings after pressing button.
Created common ThreadUtil file with starting Thread method to not duplicate code in the samples.

@kkasperczyk-no conflicts?

@kkasperczyk-no conflicts?

@rwalker-apple conflicts are resolved now.


Added global folder and multi-folder support

Local folders can be configured using "%WORKSPACE%", configurable through constants folder.
Templates Path would now appear as below:
"blueprint.templatesPath": [     "templates", // Located in Program Files     "%WORKSPACE%/blueprint-templates" // Located in Workspace Root  ],

          1 Error

:no_entry_sign:
Please include an entry in CHANGELOG.md—if this is a trivial Pull Request that does not require a changelog entry please include #trivial in the title.

          2 Warnings

:warning:
Big PR - Consider breaking this into several smaller pull requests

:warning:
package.json was edited.

          1 Message

:book:
:tada:  Thanks for the Pull Request!

  Generated by :no_entry_sign: Danger

Great! I have a couple changes I’m gonna submit that makes it better handle unix paths.

On Apr 30, 2018, at 8:24 PM, Ray McClain<EMAIL_ADDRESS>wrote:
@ReiMcCl commented on this pull request.
In src/fileCreator.ts https://github.com/reesemclean/blueprint/pull/42#discussion_r185160920:

@@ -107,7 +106,7 @@ export class FileCreator {

     return new Promise((resolve, reject) => {

       const templateDirectory = path.join(this.data.templateFolderPath, this.data.templateName);

       const templateDirectory = path.join(this.data.templateFolderPath);

Thanks for the quick response! I believe we can alter the above to make this a non-breaking change by altering the behaviour to use a character/key for referencing the global directory instead of the local one. Something like "@/templates" referencing the program files. This way, we should be able to retain the existing functionality.
I will submit a new PR shortly with the above changes and the reversed logic for global/local directory.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/reesemclean/blueprint/pull/42#discussion_r185160920, or mute the thread https://github.com/notifications/unsubscribe-auth/Aad0Pf5TS2G9ZBfOD5Ya_r4gGARaLpmuks5tt9VngaJpZM4TsMa0.

I actually think we can just use relative paths — to reference a file inside the workspace the user should be able to use "./blueprint-templates”. So we should be able to get rid of %WORKSPACE% completely.

On Apr 30, 2018, at 8:24 PM, Ray McClain<EMAIL_ADDRESS>wrote:
@ReiMcCl commented on this pull request.
In src/fileCreator.ts https://github.com/reesemclean/blueprint/pull/42#discussion_r185160920:

@@ -107,7 +106,7 @@ export class FileCreator {

     return new Promise((resolve, reject) => {

       const templateDirectory = path.join(this.data.templateFolderPath, this.data.templateName);

       const templateDirectory = path.join(this.data.templateFolderPath);

Thanks for the quick response! I believe we can alter the above to make this a non-breaking change by altering the behaviour to use a character/key for referencing the global directory instead of the local one. Something like "@/templates" referencing the program files. This way, we should be able to retain the existing functionality.
I will submit a new PR shortly with the above changes and the reversed logic for global/local directory.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub https://github.com/reesemclean/blueprint/pull/42#discussion_r185160920, or mute the thread https://github.com/notifications/unsubscribe-auth/AAz4fcKvCJ0YlDMrfRqJ8Wmfxi8JKb-Gks5tt9VngaJpZM4TsMa0.

I have added relative loading through "./", unfortunately the method still uses a key defined in constants as the relative path is from VSCode's program files.
I have also updated the templatesPath setting to support String, Object, and Array types. Backwards compatibility is an option, however it would require some type of global key like '@/'.


[Feature]: add target tests to singer_sdk.testing

Feature scope
Targets (data type handling, batching, SQL object generation, etc.)
Description
Currently there are no standard target tests included with the Singer SDK. A good selection of example tests is available in MeltanoLabs/target-sqlite that are readily portable to the SDK.

What route were you thinking.  I have them these be part of the cookie cutter or more of a TODO that we need to add particulars to variables?

Closed with

https://github.com/meltano/sdk/pull/1171


Add TextEncoder overloads hinted in comments in source.

As part of Issue #1091 - Productize Encoding APIs

Please rebase/squash the commits


Sending messages

Hi!
I continue to deal with your library and faced the fact that I can not send a message to the telegram when any events occur. For example, write the following code:
void loop() { TBMessage msg; if(digitalRead(button)==HIGH) myBot.sendMessage(msg, " button=1"); }
but nothing comes in telegram. What am I doing wrong? At the same time, there is a connection with telegram.

Hi @gravedigger21
I'm sorry for late reply, but i'm very busy in these days.
In the examples included in library, the bot send a message to user as a reply, so the struct TBMessage msg is already valorized with all necessary data.
In order to be able to send directly a message to user (or to groups), you need to know the ID in advance.
For example in echoBot.ino you can find these lines of code:
 // Send a message to specific user who has started your bot
 // Target user can find it's own userid with the bot @JsonDumpBot
 // https://t.me/JsonDumpBot
 int64_t userid = 123456789;
 myBot.sendTo(userid, welcome_msg);

With your sample code it will be:
// https://t.me/JsonDumpBot
int64_t userid = 123456789;
.....
void loop() {
  if(digitalRead(button)==HIGH) {
    myBot.sendTo(userid, " button=1");
  }
}

You could use also the sendMessage() method, but fitting the msg struct with the ID, but I think sendTo() is more "clear":
void loop() {
  if(digitalRead(button)==HIGH) {
     TBMessage msg;
     msg.chatId = 123456789;
     myBot.sendMessage(msg, " button=1");
  }
}

I'm going to close this issue for inactivity.
Reopen if you need more info.


The duration statistics of Activity usage are incorrect.

Translate the following sentence into English: "Activity usage duration statistics are performed in onStart and onStop. However, the statistics are incorrect when the Activity switches rapidly. For example, from activityA to activityB, then quickly back to activityA. This scenario can also lead to incorrect determination of foreground and background switches."

Hi @GaoYi123 . Can you please provide more information. For example: SDK code you used for the scenario you mentioned (init time configuration for example). Also the SDK logs during the mentioned scenario. Also SDK version you are using. And more information about the environment you observed this behavior (like the emulator you used). And lastly where/how you observed the inconsistency (like expected behavior vs the observed one)

你好@GaoYi123。您能否提供更多信息。例如：您提到的场景使用的 SDK 代码（例如初始化时间配置）。 SDK 也会在上述场景中记录日志。还有您正在使用的 SDK 版本。以及有关您观察到此行为的环境（例如您使用的模拟器）的更多信息。最后，您在哪里/如何观察到不一致的情况（例如预期行为与观察到的行为）

sdkVersion : 23.12.0
device : xiaomi 11 Ultra
When ActivityA transitions to ActivityB and quickly exits ActivityB to return to ActivityA, neither the onStart nor onStop methods of ActivityA will be executed. This can lead to issues with statistics.

你好@GaoYi123。您能否提供更多信息。例如：您提到的场景使用的 SDK 代码（例如初始化时间配置）。 SDK 也会在上述场景中记录日志。还有您正在使用的 SDK 版本。以及有关您观察到此行为的环境（例如您使用的模拟器）的更多信息。最后，您在哪里/如何观察到不一致的情况（例如预期行为与观察到的行为）

When ActivityA transitions to ActivityB, the onStart method of ActivityB will call the startViewInternal method, which then calls the autoCloseRequiredViews method. The autoCloseRequiredViews method will complete the page statistics for ActivityA. However, when quickly returning to ActivityA, the onStart method of ActivityA will not be called. Even though ActivityA is currently displayed, because the onStart method of ActivityA is not called, the SDK thinks that ActivityB is currently displayed.

你好@GaoYi123。您能否提供更多信息。例如：您提到的场景使用的 SDK 代码（例如初始化时间配置）。 SDK 也会在上述场景中记录日志。还有您正在使用的 SDK 版本。以及有关您观察到此行为的环境（例如您使用的模拟器）的更多信息。最后，您在哪里/如何观察到不一致的情况（例如预期行为与观察到的行为）

The SDK calculates the number of activities to determine the foreground and background states using onResume and onStop. This situation can lead to incorrect counts because when ActivityA transitions to ActivityB, the onResume method of ActivityB will execute, but the onStop method of ActivityA may not necessarily execute.

Hello @GaoYi123, we have inspected and reproduced the issue. We will look into fixing it.


Question about converting Offset to accept long instead of int

Hello.
I have a use case where I have to generate select query with offset bigger that int.MaxValue. As said in https://github.com/sqlkata/querybuilder/issues/298 int is sufficient for almost all cases, but not all. While I mostly agree with that statement for Limit, because it is rather rare for someone to attempt to read over 2 billion rows at once, the case is rather different when it comes to Offset.
Apart from the slightly higher memory usage, I don't see any disadvantages to making this API take long instead of int. Of course I'm don't have domain knowledge about the library, so I may be missing something. Do you, guys, see anything that would make such a change unfeasable or undesirable?

Feature add #608 thanks for your feedback, will be available in the next major release due to breaking change


Block a Pod's IP packets until its NetworkPolicies are realized

In the previous implementation, traffic from/to a Pod may bypass NetworkPolicies applied to the Pod in a short time window when the agent restarts because realizing NetworkPolicies and enabling forwarding are asynchronous.
However, we can't wait for all NetworkPolicies to be realized before enabling forwarding of OVS because there are some cases the former depends on the latter, for example, when proxyAll is enabled, or when it's a Windows Node, in which cases control-plane communication relies on the forwarding of OVS.
This patch takes a more fine-grained approach: block a Pod's IP packets in NetworkPolicy's entry tables until its NetworkPolicies are realized.This granularity leaves the Node and the hostNetwork Pods' traffic untouched and makes the realization issue of a Pod's NetworkPolicies affect the Pod's IP packets only.
The following changes are made to implement the approach:

EgressSecurityClassifierTable is now always required. (Previously it's only required for ExternalNode, not K8sNode).
One flow with low priority dropping traffic from local Pods is installed in EgressSecurityClassifierTable, and one flow with low priority dropping traffic to local Pods is installed in IngressSecurityClassifierTable.
When a Pod's NetworkPolicies are fully realized the first time, one flow with normal priority allowing traffic from this Pod is installed in EgressSecurityClassifierTable to override the above drop action, one flow in IngressSecurityClassifierTable did the same for traffic to this Pod.

Depends on https://github.com/antrea-io/antrea/pull/5697

I haven't reviewed the code in details yet, but I had one question.

However, we can't wait for all NetworkPolicies to be realized before enabling forwarding of OVS because there are some cases the former depends on the latter, for example, when proxyAll is enabled, or when it's a Windows Node, in which cases control-plane communication relies on the forwarding of OVS.

Historically, we have claimed that Pod network setup has no dependency on the Antrea Controller. In other words, if the Antrea Controller is down, the Antrea Agent can still connect the Pod to the Pod network, and the Pod will have IP connectivity. Our architecture doc even has the following statement:

At the moment, Antrea Controller mainly exists for NetworkPolicy implementation. If you only care about connectivity between Pods but not NetworkPolicy support, you may choose not to deploy Antrea Controller at all.

We still today present this as an advantage of the Antrea architecture, when we talk about the project.
So I wanted to double check that this proposed change doesn't invalidate that statement. If the core idea still holds (Antrea Controller isn't required to provide connectivity, and NP realization is more of a local concept here), then I have no objection. If this PR changes that, maybe we should have a discussion about whether this should be configuration-based.

I haven't reviewed the code in details yet, but I had one question.

However, we can't wait for all NetworkPolicies to be realized before enabling forwarding of OVS because there are some cases the former depends on the latter, for example, when proxyAll is enabled, or when it's a Windows Node, in which cases control-plane communication relies on the forwarding of OVS.

Historically, we have claimed that Pod network setup has no dependency on the Antrea Controller. In other words, if the Antrea Controller is down, the Antrea Agent can still connect the Pod to the Pod network, and the Pod will have IP connectivity. Our architecture doc even has the following statement:

At the moment, Antrea Controller mainly exists for NetworkPolicy implementation. If you only care about connectivity between Pods but not NetworkPolicy support, you may choose not to deploy Antrea Controller at all.

We still today present this as an advantage of the Antrea architecture, when we talk about the project.
So I wanted to double check that this proposed change doesn't invalidate that statement. If the core idea still holds (Antrea Controller isn't required to provide connectivity, and NP realization is more of a local concept here), then I have no objection. If this PR changes that, maybe we should have a discussion about whether this should be configuration-based.

The situation is the statement is already stale, the proposed change invalidages it further. But we can make some changes to achieve the statement again.
Yes, from connectivity's perspective, antrea-controller is not a must-have (except AntreaIPAM mode) technically. However, when NetworkPolicy is in use, I think it's wrong to treat it as best-effort and declare the behavior that an already realized NetworkPolicy may be bypassed when the agent restarts is expected. Transient packet loss is a nature of networking and something applications can tolerate, but not degraded security. If this principle is agreed, then we have to make realization of NetworkPolicy a precondition of connectivity logically.
Even though the statement is there, I feel there is no real use case that doesn't deploy antrea-controller, because the connection with antrea-controller has become a check of antrea-agent's readiness since v1.0.0 (by https://github.com/antrea-io/antrea/pull/1946). The agents wouldn't appear as ready if there is no antrea-controller.
It's still possible to achieve what the statement describes, but first we need to make NetworkPolicy optional explicitly. User can choose to disable the whole NetworkPolicy function and not to deploy antrea-controller. Then antrea-agent doesn't initilize NetworkPolicyController and doesn't make it a check of readiness, and the flows to block IP packets in NetworkPolicy tables wouldn't be there.

Transient packet loss is a nature of networking and something applications can tolerate, but not degraded security. If this principle is agreed, then we have to make realization of NetworkPolicy a precondition of connectivity logically.

Yes, I do think that overall this is an improvement to the implementation. Can you remind me how we define "NetworkPolicies are realized"? Which set of NetworkPolicies are we considering in this case? Is there any specific guarantee or it just means that the Pod has been processed "once" by the Antrea Controller?

Even though the statement is there, I feel there is no real use case that doesn't deploy antrea-controller

I tend to agree. IMO, the design was really more about having the CNI implementation (implementation of CNI ADD / DEL) independent of a centralized control-plane, not about the ability to deploy Antrea without the controller. We still have this today (CNI ADD is handled locally, and doesn't require communication with the controller), unlike ovn-kubernetes for example. Even then, it's unclear if there is any tangible benefit, besides a simpler architecture.
With this change, we do add tighter coupling since connectivity won't be enabled if there is a transient issue with the connection to the controller.

It's still possible to achieve what the statement describes, but first we need to make NetworkPolicy optional explicitly.

I don't know if it's worth it. We haven't had any user request for this, and as you said the coupling exists since Antrea v1.0. We should update the design doc though (and any other possible reference to this in the rest of the documentation).
We could also provide an option to disable the new behavior (installation of flows to block IP forwarding), to preserve the current behavior. But I don't think there would be any scenario in which it would make sense for a user to disable this behavior upfront. If there is a transient issue with the controller, it should resolve fast. And if it doesn't resolve fast, there is an underlying issue that should be addressed. Also, if the controller is temporarily down and policy changes cannot be handled, this proposed change would not impact existing workloads AFAIK.
It's still a bit of a compromise between security / correctness, and robustness. This change could theoretically increase the blast radius of a bug in the controller. If a single-tenant K8s user doesn't have any NetworkPolicies, this change would still affect them in a way. A bug in the controller could mean the inability to schedule workloads.

Transient packet loss is a nature of networking and something applications can tolerate, but not degraded security. If this principle is agreed, then we have to make realization of NetworkPolicy a precondition of connectivity logically.

Yes, I do think that overall this is an improvement to the implementation. Can you remind me how we define "NetworkPolicies are realized"? Which set of NetworkPolicies are we considering in this case? Is there any specific guarantee or it just means that the Pod has been processed "once" by the Antrea Controller?

In this PR, a Pod's NetworkPolicies are realized when all rules applied to have been reconciled successfully.
https://github.com/antrea-io/antrea/blob/f8f027112f2455d9f3af5b3d80757e219dacdbe2/pkg/agent/controller/networkpolicy/status_controller.go#L127-L136

We could also provide an option to disable the new behavior (installation of flows to block IP forwarding), to preserve the current behavior. But I don't think there would be any scenario in which it would make sense for a user to disable this behavior upfront. If there is a transient issue with the controller, it should resolve fast. And if it doesn't resolve fast, there is an underlying issue that should be addressed. Also, if the controller is temporarily down and policy changes cannot be handled, this proposed change would not impact existing workloads AFAIK.
It's still a bit of a compromise between security / correctness, and robustness. This change could theoretically increase the blast radius of a bug in the controller. If a single-tenant K8s user doesn't have any NetworkPolicies, this change would still affect them in a way. A bug in the controller could mean the inability to schedule workloads.

I feel an option to disable NetworkPolicy entirely makes more sense than an option to preserve the "best-effort" NetworkPolicy behavior as users will need to configure something anyway, and the reason why they should do it is, it's unnecessary to add a failure point when they don't really use any function provided by it.
I should mention the implementation only blocks a Pod's IP packets when the agent never knows what NetworkPolicies have applied to the Pod (this is before the agent has fully synced with the controller) or when known NetworkPolicies haven't been realized succesfully (which hardly happen today). It doesn't require the desired NetworkPolicy antrea-agent has retrieved to be strictly up-to-date (and it's perhaps impossible). The logic is that we could realize NetworkPolicies based on a snapshot of a time point but can't based on an empty data. It essentially prevents a regression of security for Pods when the agent upgrades/restarts.
In practice, the Pod traffic won't be blocked as long as the agent has ever connected to the controller once (retrieved a snapshot of desired NetworkPolicy), even the controller crashed after that for some reason. The worse case only happens when antrea-agent restarts and antrea-controller is not and can't get running.

I'm thinking, we could also have a local copy of the desired NetworkPolicies in host filesystem, which will be used as the source of NetworkPolicy before connecting to the controller successfully. It may resolve the problem and perhaps we don't need to block IP packets in this case, then it wouldn't increase the blast radius of a bug in the controller.

In the previous implementation, traffic from/to a Pod may bypass NetworkPolicies applied to the Pod in a short time window when the agent restarts because realizing NetworkPolicies and enabling forwarding are asynchronous.
However, we can't wait for all NetworkPolicies to be realized before enabling forwarding of OVS because there are some cases the former depends on the latter, for example, when proxyAll is enabled, or when it's a Windows Node, in which cases control-plane communication relies on the forwarding of OVS.
This patch takes a more fine-grained approach: block a Pod's IP packets in NetworkPolicy's entry tables until its NetworkPolicies are realized.This granularity leaves the Node and the hostNetwork Pods' traffic untouched and makes the realization issue of a Pod's NetworkPolicies affect the Pod's IP packets only.
The following changes are made to implement the approach:

EgressSecurityClassifierTable is now always required. (Previously it's only required for ExternalNode, not K8sNode).
One flow with low priority dropping traffic from local Pods is installed in EgressSecurityClassifierTable, and one flow with low priority dropping traffic to local Pods is installed in IngressSecurityClassifierTable.
When a Pod's NetworkPolicies are fully realized the first time, one flow with normal priority allowing traffic from this Pod is installed in EgressSecurityClassifierTable to override the above drop action, one flow in IngressSecurityClassifierTable did the same for traffic to this Pod.

Depends on #5697

IMO, the design depend on selection of security policy strategy for pods, it seems this new strategy applies Default-Deny for pods wrt Network Policies realization and NetworkPolicy feature, however it has its own limitations like in case antrea agent fail to restart during first time wrt realization of policies, what will be the failover strategy here for pods on different nodes ! pod traffic will remain blocked until agent recovers & realise np for first time/ at least once . It might be that on one of node, pods remain in default deny state due to step 2(with agent start failure) and one of node it will remain in default allow state(with step 2 & 3 success),
So it might be difficult to identify the default security behaviour, if it is default-deny/default-allow security strategy !

however it has its own limitations like in case antrea agent fail to restart during first time wrt realization of policies, what will be the failover strategy here for pods on different nodes ! pod traffic will remain blocked until agent recovers & realise np for first time/ at least once . It might be that on one of node, pods remain in default deny state due to step 2(with agent start failure) and one of node it will remain in default allow state(with step 2 & 3 success),
So it might be difficult to identify the default security behaviour, if it is default-deny/default-allow security strategy !

I'm not sure if I get the point. The PR's point isn't about default-deny/default-allow strategy but to prevent security breach which happens in the described situation (when an agent doesn't know the policies yet). On a Node it has gotten policies, it enforces the requested policies; on a Node it hasn't gotten policies, it doesn't enabling forwarding for safe, otherwise it could be a security breach.

I'm thinking, we could also have a local copy of the desired NetworkPolicies in host filesystem, which will be used as the source of NetworkPolicy before connecting to the controller successfully. It may resolve the problem and perhaps we don't need to block IP packets in this case, then it wouldn't increase the blast radius of a bug in the controller.

@antoninbas I had a PoC of storing policies to local files: https://github.com/tnqn/antrea/commit/05b7d6928e889850a27843bd51334417bc9a10c9 (it's a draft please ignore the code redundancy). I think it's simpler than the current PR and is much less invasive to datapath. As seen from the patch, it mainly changes cache.go: store data to local files and use local files to restore data upon start. If we reach a consensus on this direction, I plan to do two more enhancements:

Ensure fresh data got from antrea-controller (if they are available) takes priority over the local data.
Installing Pod flows (via podConfigurator.reconcile) after NetworkPolicies have been realized regardless of the source of the NetworkPolicies.

This could guarantee that

Even antrea-controller keeps crashing or is never deployed, Pod traffic wouldn't be blocked when there is never a policy asking for it.
Policies could be realized with a delay if there is something wrong with antrea-controller, which is also the current situation, but security regression would never happen: what's been realized will continue to take effect dispite the restart of antrea-agent.

it mainly changes cache.go: store data to local files and use local files to restore data upon start.

I think the solution makes a lot of sense to me except for two concerns:

If I'm understanding this correctly, it used to be when agent restarts, the ruleCache is populated from scratch based on the addressGroup/appliedToGroup/internalNP events received from the controller, so we always get the desired state. If on the other hand the state is first restored from local filesystem, will stale resources be handled correctly? i.e. any groups for example deleted during agent downtime triggers a DELETE event once agents reconnects. Or are we simply replacing the ruleCache once it reconnects? I guess that fall into the Ensure fresh data got from antrea-controller (if they are available) takes priority over the local data enhancement you were talking about.

An I/O for each and every ag/atg/internalNP update seems pretty expense to me for this specific purpose, considering by default there's only 4 workers for syncing ruleCache updates, which is now blocking. I'm a bit worried that reconciling policies of 1k+ scale will show degrade in performance.

@tnqn I think I understand the Agent restart case pretty well know, but I may still be confused about the Pod creation case.
Initially, I thought that your patch would block traffic to / from the Pod until we have a chance to get updated NP objects from the controller (e.g., updated / new AppliedToGroups). However, based on your recent comments (and based on me finally looking at the code...), it doesn't seem to be the case? The following situation is totally possible, with either the original approach or the new approach (file-based caching):

Pod network is configured, forwarding is blocked
NP controller checks which if any rule applies to the Pod, none found
forwarding is enabled by installing new higher priority flows
NP controller receives new / updated ATGs from the antrea-controller, for which the new Pod is a member
Rules are realized in the datapath

So to clarify: this PR is about preventing regressions in NP enforcement (if a NP was ever enforced and the user hasn't updated it, it will always be enforced, or forwarding will not be permitted), not about providing guarantees for newly created Pods?

1. If I'm understanding this correctly, it used to be when agent restarts, the ruleCache is populated from scratch based on the addressGroup/appliedToGroup/internalNP events received from the controller, so we always get the desired state. If on the other hand the state is first restored from local filesystem, will stale resources be handled correctly? i.e. any groups for example deleted during agent downtime triggers a DELETE event once agents reconnects. Or are we simply replacing the ruleCache once it reconnects? I guess that fall into the Ensure fresh data got from antrea-controller (if they are available) takes priority over the local data enhancement you were talking about.

Yes, if the connection is successful, the fresh data should be hornored. We can consider it as that the agent disconnects from the controller (no restart), it will use the last data it got from the controller until a successful reconnection. The PoC code doesn't do so but it's something I will add when creating a PR. Then, when the controller is fine, it will behave like before, while it will use local files as the policy data when the controller is down.

2. An I/O for each and every ag/atg/internalNP update seems pretty expense to me for this specific purpose, considering by default there's only 4 workers for syncing ruleCache updates, which is now blocking. I'm a bit worried that reconciling policies of 1k+ scale will show degrade in performance.

This is a good point and I was going to test it too. I was not too worried about it because the I/O is in the process of event handling, which runs in parallel with the rule workers. It won't affect the efficiency of the workers but may slow down how fast the events are delivered to workers. But I assume writing to file is faster than realizing a rule via OVS (the producer is faster than the consumer), especially the file directory is in tmpfs (/run/). But I could run a benchmark to get some figures to validate it.

So to clarify: this PR is about preventing regressions in NP enforcement (if a NP was ever enforced and the user hasn't updated it, it will always be enforced, or forwarding will not be permitted), not about providing guarantees for newly created Pods?

Yes, it's to prevent regressions in NP enforcement. Providing guarantees for newly created Pods is something more complicated, requiring the controller to even indicate a Pod doesn't have any policies applied explicitly and a healthy controller must be an essential dependency of Pod connectivity, otherwise the agent won't know whether the Pod doesn't have policies applied or it has but the agent hasn't received yet.
However, I think it matches what we declare: without antrea-controller, antrea-agent will still enforce the policies it has received, but new changes to NetworkPolicy or Pod will not be reflected in datapath. And there should be no real problem for newly created Pod in practice as long as antrea-controller is running fine, because we include a Pod in AppliedToGroup right after it's created, before it gets an Pod IP, the agent will see the Pod in the AppliedToGroup right after it gets scheduled to the Node, may even before its Pod interface gets created.
If we want to provide strict guarantee for newly created Pods, I think we should have a separate PR, and perhaps make it controlled by a config option which is not enabled by default, due to the side effect that Pod connectivity will rely on antrea-controller to explicitly indicate there is no policies applied to it.

An I/O for each and every ag/atg/internalNP update seems pretty expense to me for this specific purpose, considering by default there's only 4 workers for syncing ruleCache updates, which is now blocking. I'm a bit worried that reconciling policies of 1k+ scale will show degrade in performance.

This is a good point and I was going to test it too. I was not too worried about it because the I/O is in the process of event handling, which runs in parallel with the rule workers. It won't affect the efficiency of the workers but may slow down how fast the events are delivered to workers. But I assume writing to file is faster than realizing a rule via OVS (the producer is faster than the consumer), especially the file directory is in tmpfs (/run/). But I could run a benchmark to get some figures to validate it.

The following numbers should confirm the extra cost is not going to be a problem:

For a single NetworkPolicy event:

It took 5,545 ns/op without writing to file
It took 23,651 ns/op with writing to file

Although it adds 18µs delay, it can’t compare with the time spent on realizing a rule, which is ms level. After the event handler adds 1k policies to cache and writes them to filesystem, which may take around 23ms, each worker may just realize 1 or 2 rules.
networkpolicy_controller.go:619] "Finished syncing rule" ruleID="8e9c56acc8035b5d" duration="14.557197ms"
networkpolicy_controller.go:619] "Finished syncing rule" ruleID="1a0cc0f70b144dbe" duration="18.110148ms"

For a bunch of policies, appliedToGroups and addressGroups, in a scale of 1,000 policies (applied to the Node), along with 1,000 appliedToGroups, each of which contains 100 Pods, 1,000 addressGroups, 10 of which contain 10,000 Pods, 100 of which contain 1,000 Pods, 890 of which contain 100 Pods.

It took 74,574,402 ns/op without writing to file
It took 357,756,521 ns/op with writing to file

The extra 283ms should be fine as the workers can't process them in time anyway.

After storing them as files, the space costs with the above scale are as below, and I think it's not going to be a problem too given this is perhaps already the maximum scale a Kubernetes can have, clusters in reality have much less policies applied to a Node's Pods, and the selectors don't usually select so many Pods.

# du -sh *
29M     address-groups
7.9M    applied-to-groups
4.0M    network-policies

@tnqn I think all these objects also support Protobuf? That may make a difference for file size and encoding / deconding performance. I know there is also encoding/gob, but last time I tried it, it was underwhelming for small-ish objects.

@tnqn I think all these objects also support Protobuf? That may make a difference for file size and encoding / decoding performance. I know there is also encoding/gob, but last time I tried it, it was underwhelming for small-ish objects.

Good point. We can leverage the Scheme and Codec objects to encode and decode, which is handy for versioning as well. The results are as below:

Format
Execution Time
Size

Json
357ms
40.9M

Protobuf
168ms
24M

@tnqn what are the next steps, will you be updating this PR with the new approach, or are you still working through some quirks?

@tnqn what are the next steps, will you be updating this PR with the new approach, or are you still working through some quirks?

I'm polishing code and tests for the new approach, particularly how to deal with versioning in the future (e.g. when the API version upgrades to v1 while the stored data is in v1beta2). I plan to create another PR for the new approach and keep this one for reference.

superseded by https://github.com/antrea-io/antrea/pull/5739


Rework the proficiency tab so that it displays more letters for the skills (dnd5e)

Rework the proficiency tab so that it displays more than 1 letter of the skill.

move styles into the css file to avoid using a style tag with a lot of repeating rules
do not do "text-overflow: ellipsis" but "test-overflow: clip" otherwise most of the space is taken by the "..."
add title="{{s}}" to the HTML so that we can see the full name of the skill when hovering

Before, the "..." takes a lot of room and skills are basically unreadable:

After, without the "..." we can show more letters, even with a smaller window:

The gods have answered my prayers, a CSS Wizard has finally come for my aid! Thank you!
Not being a UI designer, figuring out how to make that tab look better has always been a headache for me.

I'm glad you like it :)
I have some knowledge in CSS so of you have some other problems that's been bothering you for a while I can take a look at it.

Thanks, I sure will!
Also, someone else suggested I transpose the table for skills so that it doesn't look as cramped (see https://github.com/mclemente/party-overview/issues/16#issuecomment-1014511711), so I might do something like that instead as a permanent solution.
Nevertheless, your help is greatly appreciated.

Transposing the table would be nice but you will still have problems when there is a lot of character of if their name are long. And it would look weird to have one tab with a different layout from the others.
But that would definitely solve a lot of the problem :)


Random sampling of the octree for gather operations

It is sometimes necessary to get a statistically approximate view of the octree below a certain level rather than a complete view for performance reasons. This is necessary for barnes-hut trees and various point-intense rendering situations to execute in realtime.

Complete as of 341d6e129010283c0cfa1ec0fcb345a3ac26d89f.


修改错别字

[x] Have you followed the contributing guidelines?

[x] Have you explained what your changes do, and why they add value to the Guides?

Please note: we will close your PR without comment if you do not check the boxes above and provide ALL requested information.

Autotranslation shows this to likely be a reordering of words without change of meaning from

Is there anything you don't want people to see in the search results?

to

Is there anything in the search results that you don't want people to see?

@Dreace233 is your rewording better Chinese grammar?
I'm going to go ahead and close this since an explanation was not provided with the PR per the templated instructions, but feel free to provide and reopen.

Autotranslation shows this to likely be a reordering of words without change of meaning from

Is there anything you don't want people to see in the search results?

to

Is there anything in the search results that you don't want people to see?

@Dreace233 is your rewording better Chinese grammar?
I'm going to go ahead and close this since an explanation was not provided with the PR per the templated instructions, but feel free to provide and reopen.

"礼" is wrong in this sentence. The correct word is "里". They have the same pronunciation, but the meaning of "礼" is politeness, while the meaning of "里" is "in".

Thanks for the explanation!


Add total_rate option to rules for NFsim compatibility

Hi, I had sent a pull request for this functionality a few years back (https://github.com/pysb/pysb/pull/304). I have now addressed the reviewer comment (https://github.com/pysb/pysb/pull/304#issuecomment-336250126). Let me know if you would like any further edits for this to be merged with master. Thanks!

The JSON export/import still needs to be updated to include this property -- this will require incrementing the protocol number. I already needed to increment it to 2 for energy support, so I might just submit a quick PR to add total_rate under protocol 2 before we make an official release. Also shouldn't we be able to parse total_rate in the BNG importer as well?

Also the Rule.__repr__ needs to add total_rate.


Error: write after end    events.js: 141

We're using rethinkdbdash and we think it's awesome - the connection pooling is solving a lot of our issues.  However, we've run into this problem that I actually can't reproduce, but I felt like I should let you know about:
events.js:141
      throw er; // Unhandled 'error' event
            ^
Error: write after end
    at writeAfterEnd (_stream_writable.js:159:12)
    at TLSSocket.Writable.write (_stream_writable.js:204:5)
    at TLSSocket.Socket.write (net.js:616:40)
    at /opt/clientsuccess/node_modules/rethinkdbdash/lib/connection.js:104:23
    at Object.tryCatch (/opt/clientsuccess/node_modules/rethinkdbdash/lib/helper.js:167:3)
    at TLSSocket.<anonymous> (/opt/clientsuccess/node_modules/rethinkdbdash/lib/connection.js:103:12)
    at emitNone (events.js:72:20)
    at TLSSocket.emit (events.js:166:7)
    at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1033:10)

Thanks @Balleraza for the report.
Do you just get the stacktrace printed? Or does your node process actually crashes?

The node process crashes but we run a docker script that starts it up again the moment it does crash.  However it prevents our service from being able to finish what it was doing (in this case emailing an alert to a client).

I believed it should be fixed with 2.1.10.
We were emitting an error a bit too early (before the pool actually has a change to bind a listener). If you still see this crash with 2.1.10, could you reopen the issue (and provide the backtrace if not the same).
Thanks!

Now I get this: events.js:141       throw er; // Unhandled 'error' event             ^ Error: socket hang up     at TLSSocket.onHangUp (_tls_wrap.js:1042:19)     at TLSSocket.g (events.js:260:16)     at emitNone (events.js:72:20)     at TLSSocket.emit (events.js:166:7)     at endReadableNT (_stream_readable.js:889:12)     at doNTCallback2 (node.js:430:9)     at process._tickDomainCallback (node.js:385:17)     at process.wrappedFunction (/opt/clientsuccess/node_modules/newrelic/lib/transaction/tracer/index.js:271:51)

Isn't that an issue with Newrelic?

Yes, sorry my mistake


Slight documentation improvements (for me a first time user)

Here, I collect some things that I found confusing. I think it never hurts to deconfuse the user as much as possible (even though many things could be clear I guess, but why not make it easy)

group in filter_parameters. → Add comment: group is a column in annotation
reCombat_parameters norm_methods: Which methods can I use from above how? Default ["CQN", "TMM"] suggests that I use uppercase letters, but I have to guess. e.g., would this work? ["TMM", "VOOM", "RLE", "none"]? → provide all options in comment as list if possible? Or explain how they come about? → this one was also hard to resolve with looking into the code, e.g., for "none" in edgeR_parameters: method: I think I should use "CPM" in my case (edgeR_parameters: quantification:) instead of "none"
Since you collect best practices here that also include knowledge, some words on whether it makes sense to use VOOM and then reCombat (or similar combinations) would be nice → it's not in the defaults and I don't understand why.

Good issue/effort. let's collect until you are done with the first time usage and then I can incorporate it into the docs.


Refactor NumberToLetter Class for Enhanced Readability and Maintainability

Refactoring of NumberToLetter Class
This pull request includes significant refactoring of the NumberToLetter class to enhance its readability, maintainability, and overall code quality.
Key Changes:

Variable Naming: Improved the clarity of variable names (e.g., $diz to $dizaines, $reste to $unit).
Method Simplification: Reorganized and simplified methods like centaine and dizaine for better understanding.
Code Encapsulation: Encapsulated repetitive code blocks into new helper methods such as handleException and unite.
Error Handling: Removed the usage of @ for error suppression to encourage proper error handling practices.
Comments: Added clear and detailed comments throughout the code to explain functionality.

These changes aim to make the codebase easier to work with and reduce potential bugs. Please review the modifications and provide any feedback.

I do some factoring!!!


Update INSTALLATION.md

changed to reflect improvements in Racket's documentation

@exercism/racket / @ErikSchierboom probably a good change, once it adheres to our markdown styleguide.

Thanks!

Thanks!


Question: What is “CRD” in the context of Artifactory?

Refer to: https://github.com/bcgov/bcbb-gitops-docs/blob/main/docs/03-artifactory.md
Q: What is Artifactory “CRD”?  Container Registry ___, or ....?
Re: "Note: It's important that this CRD resource gets created in the tools namespace." Please state why this is important.

Hi @NicoledeGreef CRD stands for Custom Resource Definition and is what you use when you want to extend the Kubernetes API.
This was installed in the tools namespace since it was mentioned in the BC Gov artifactory documentation where it needs to exist in order to properly setup the Artifactory connection.
https://developer.gov.bc.ca/docs/default/component/platform-developer-docs/docs/build-deploy-and-maintain-apps/setup-artifactory-project-repository/

Resolved this in my updates notes :D


Dec  2 11:24:57 harrenhal kusama_node[21273]: 2019-12-02 11:24:57.989 tokio-runtime-worker-0 TRACE afg  Polling round 2224, state = State { prevote_ghost: Some((0x34eecf4680b551adfbdf28ca891c3bf88d48e763ff17fdbbf546759fe48d5779, 52946)), finalized: None, estimate: Some((0x34eecf4680b551adfbdf28ca891c3bf88d48e763ff17fdbbf546759fe48d5779, 52946)), completable: false }, step = Some(Precommitted)
Dec  2 11:24:57 harrenhal kusama_node[21273]: 2019-12-02 11:24:57.989 tokio-runtime-worker-0 TRACE afg  Got incoming message
Dec  2 11:24:57 harrenhal kusama_node[21273]: 2019-12-02 11:24:57.990 tokio-runtime-worker-2 TRACE afg  Polling round 2224, state = State { prevote_ghost: Some((0x34eecf4680b551adfbdf28ca891c3bf88d48e763ff17fdbbf546759fe48d5779, 52946)), finalized: None, estimate: Some((0x34eecf4680b551adfbdf28ca891c3bf88d48e763ff17fdbbf546759fe48d5779, 52946)), completable: false }, step = Some(Precommitted)
Dec  2 11:24:57 harrenhal kusama_node[21273]: 2019-12-02 11:24:57.990 tokio-runtime-worker-2 TRACE afg  Got incoming message
Dec  2 11:24:57 harrenhal kusama_node[21273]: 2019-12-02 11:24:57.992 tokio-runtime-worker-0 TRACE afg  Polling round 2224, state = State { prevote_ghost: Some((0x34eecf4680b551adfbdf28ca891c3bf88d48e763ff17fdbbf546759fe48d5779, 52946)), finalized: None, estimate: Some((0x34eecf4680b551adfbdf28ca891c3bf88d48e763ff17fdbbf546759fe48d5779, 52946)), completable: false }, step = Some(Precommitted)
Dec  2 11:24:57 harrenhal kusama_node[21273]: 2019-12-02 11:24:57.992 tokio-runtime-worker-0 TRACE afg  Got incoming message
Dec  2 11:24:57 harrenhal kusama_node[21273]: 2019-12-02 11:24:57.993 tokio-runtime-worker-2 TRACE afg  Polling round 2224, state = State { prevote_ghost: Some((0x34eecf4680b551adfbdf28ca891c3bf88d48e763ff17fdbbf546759fe48d5779, 52946)), finalized: None, estimate: Some((0x34eecf4680b551adfbdf28ca891c3bf88d48e763ff17fdbbf546759fe48d5779, 52946)), completable: false }, step = Some(Precommitted)
Dec  2 11:24:57 harrenhal kusama_node[21273]: 2019-12-02 11:24:57.993 tokio-runtime-worker-2 TRACE afg  Got incoming message
Dec  2 11:24:57 harrenhal kusama_node[21273]: 2019-12-02 11:24:57.995 tokio-runtime-worker-0 TRACE afg  Polling round 2224, state = State { prevote_ghost: Some((0x34eecf4680b551adfbdf28ca891c3bf88d48e763ff17fdbbf546759fe48d5779, 52946)), finalized: None, estimate: Some((0x34eecf4680b551adfbdf28ca891c3bf88d48e763ff17fdbbf546759fe48d5779, 52946)), completable: false }, step = Some(Precommitted)
Dec  2 11:24:57 harrenhal kusama_node[21273]: 2019-12-02 11:24:57.995 tokio-runtime-worker-0 TRACE afg  Got incoming message
Dec  2 11:24:57 harrenhal kusama_node[21273]: 2019-12-02 11:24:57.996 tokio-runtime-worker-1 TRACE afg  Polling round 2224, state = State { prevote_ghost: Some((0x34eecf4680b551adfbdf28ca891c3bf88d48e763ff17fdbbf546759fe48d5779, 52946)), finalized: None, estimate: Some((0x34eecf4680b551adfbdf28ca891c3bf88d48e763ff17fdbbf546759fe48d5779, 52946)), completable: false }, step = Some(Precommitted)
Dec  2 11:24:57 harrenhal kusama_node[21273]: 2019-12-02 11:24:57.996 tokio-runtime-worker-1 TRACE afg  Got incoming message

The log says: for 1 second, the sentry was on the same latest round as its peers, and was making progress in the round. The validator is on the same round, but doesn't appear to have received all the votes the sentry has.
I can't say what's happened here without more information.

What further information would you like me to pass on to you? I can paste logs for 3 to 5 seconds on pastbin if that would be helpful? I had to cut logs to 1 sec because they are quite verbose.

All logs for Peer **** updated view, where **** is the peer ID of your validator.

Here are the validator catch-up request logs:
https://gist.github.com/akhanaton/40f62eb88c5eaea091d02fffebfd35b4
And the updated view from the three sentries:
https://gist.github.com/akhanaton/8482a78a81689685dc5da3d931cfb22f
https://gist.github.com/akhanaton/cefebd7ecc0eb18745271cfce23d977e
https://gist.github.com/akhanaton/210ba333c149b602272ec2e902ccf582
Is this what you need? If there's anything else that you need let me know.

Is the finality stalled on the node still? It appears to be progressing rounds normally. It's definitely not stuck on the round from before.

It's intermittent, it's current 100 blocks behind. Pretty sure it would have fallen behind at some point in those logs, it lags quite often sometimes up to high hundreds.

What I'm missing now is context as to what round the sentries are on vs. the validator, since it's not from the same time slice as before. It would help me determine if the validator isn't catching up as far as it could be at once, since it seems to be requesting a lot of short catch-ups frequently, rather than long ones once at a time.

Advice on how to proceed?  Just let me know the steps and I will get what you  need for you.

I can see that the validator is asking the sentries to catch up a lot. This on its own is weird, especially because it's trying to catch up by a closer margin than I would expect. But I don't know which round the sentry is actually on - it looks a little like messages just aren't propagating to the validator, but I don't know why that would be. It needs more information; All afg=trace or debug logs, where I would need to know the peer IDs of the nodes involved to find out what's happening. It would be best if the logs are from a period where the validator is definitely behind.

Okay, I have got all logs you requested (time synched) during a period that I am sure finalization was lagging,plus file with peer id's, all in all pushing 750 megabytes. How can I get them across to you?

I think this might have to do with the Sentry node not sending messages to your validator, because it's not in the sqrt sampled validators that it should send messages to.

Not sure what's happening with this problem but here's how it looks like over a 12 hour period - top window is a (public) sentry, bottom is a (private) validator with finalised block lag.

I've tried resyncing on all nodes with --pruning=archive abut didn't help. Note, I have private validators connecting to public sentries over Wireguard. Maybe devs could confirm what flags a sentry and validator should run with - in case can make a difference.

CC @mxinden

@crsCR sorry for the delay, a couple of follow up questions:

To how many sentry nodes is each of your validators connected?

Can your validators do outbound connections to nodes other than your sentry nodes?

Can you post the command-line flags that you are passing to your sentry and to your validator nodes here?

At that time, 3.
Validators were only showing 3 peers.
sentries= name, telemetry-url (private), reserved-nodes (validator vpn ip's), sentry | validators= name, telemetry-url (private), reserved-nodes (sentry vpn ip's), listen-addr, reserved-only, no-mdns, validator.

Note, problem hasn't happened for a few days now - can't say why.

Doing it again now...

How many peers do the sentry nodes have when the issue occurs?

Not sure exactly - but plenty.


Pa 156 js documentation

Documentation for the javascript.
This is adding document strings to all the public functions and types. There should be no change to the code as part of this code change.

Moved to https://github.com/pactfi/pact-js-sdk/pull/6


automatic rezise && new release

It would be interesting to expand memory on the first boot without doing these steps:
sudo mount /dev/mmcblk0p1 /boot
raspi-config
> Expand the filesystem
> Reboot

http://elinux.org/RPi_Resize_Flash_Partitions
I would also like to take advantage of saying, that it is time to have a new release, both minimal and full image

Hey!  I know we talk privately so just want to put it out there for anyone watching.  I'm moving the rpi3 and rpi0-w build script to an official offsec build:
https://github.com/offensive-security/kali-arm-build-scripts
This repo will stick around but more for testing.  I've looked at using raspbians expandfs and I will play around it with some more and see if we can incorporate into future builds.


Indic language models

if possible please include indian language models

Currently, language modeling is an experimental feature to pre-initialize the encoder and/or decoder. They are not usable as is.

what kind of support required to on board traslation for indian languages

I am trying the same.
I have training data eng-hindi parallel corpus, trained a model, but the text encoding is a problem that I am solving now.

@sridhar-newsdistill I'm unsure what your request is. If you are looking for pretrained translation models with Hindi on the source or target, there is none at the moment. However, you can gather the data and train your own.

Thanks  @guillaumekln


ingress-azure not starting

Describe the bug
I am following the brownfield guide.  I have an AKS cluster in a different RG to the AppGW.
AppGW pod is not starting properly, and the existing AppGW still has it's pre-aks settings
To Reproduce
Steps to reproduce the behavior:
Follow the guide, in addition I also ran:
`az role assignment create --role Reader --scope /subscriptions/cbd252d1-a1d9-40c7-9e82-2deabc637a91/resourceGroups/AKSPoC-RG-Kubernetes-Master --assignee 2b347be0-d765-4000-8ee4-08584a3d32f8
az role assignment create --role Contributor --scope /subscriptions/cbd252d1-a1d9-40c7-9e82-2deabc637a91/resourceGroups/AKSPoC-RG-AppGW/providers/Microsoft.Network/applicationGateways/AKSPoCAppGW --assignee 2b347be0-d765-4000-8ee4-08584a3d32f8`
Ingress Controller details

Output of kubectl describe pod <ingress controller> . The  pod name can be obtained by running helm list.
`
HostPathType:  File
ingress-azure-token-pd2dk:
Type:        Secret (a volume populated by a Secret)
SecretName:  ingress-azure-token-pd2dk
Optional:    false
QoS Class:       BestEffort
Node-Selectors:
Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
Type     Reason     Age                    From               Message

Normal   Scheduled  22m                    default-scheduler  Successfully assigned default/ingress-azure-6c66dcfb97-ng8fs to aks-nodepool1-35064155-vmss000000
Normal   Pulling    22m                    kubelet            Pulling image "mcr.microsoft.com/azure-application-gateway/kubernetes-ingress:1.2.0"
Normal   Pulled     22m                    kubelet            Successfully pulled image "mcr.microsoft.com/azure-application-gateway/kubernetes-ingress:1.2.0"
Normal   Created    22m                    kubelet            Created container ingress-azure
Normal   Started    22m                    kubelet            Started container ingress-azure
Warning  Unhealthy  2m39s (x121 over 22m)  kubelet            Readiness probe failed: Get http://<IP_ADDRESS>:8123/health/ready: net/http: request canceled (Client.Timeout exceeded while awaiting headers)
`

Output of kubectl logs <ingress controller>.  ERROR: logging before flag.Parse: I0930 15:32:21.600119       1 utils.go:115] Using verbosity level 3 from environment variable APPGW_VERBOSITY_LEVEL
E0930 15:32:21.623672       1 context.go:198] Error fetching AGIC Pod (This may happen if AGIC is running in a test environment). Error: pods "ingress-azure-6c66dcfb97-ng8fs" is forbidden: User "system:serviceaccount:default:ingress-azure" cannot get resource "pods" in API group "" in the namespace "default"
I0930 15:32:21.624134       1 environment.go:240] KUBERNETES_WATCHNAMESPACE is not set. Watching all available namespaces.
I0930 15:32:21.624247       1 main.go:128] Appication Gateway Details: Subscription="cbd252d1-a1d9-40c7-9e82-2deabc637a91" Resource Group="AKSPoC-RG-AppGW" Name="AKSPoCAppGW"
I0930 15:32:21.624259       1 auth.go:46] Creating authorizer from Azure Managed Service Identity
I0930 15:32:21.624335       1 httpserver.go:57] Starting API Server on :8123
I0930 15:33:32.416000       1 main.go:175] Ingress Controller will observe all namespaces.
I0930 15:33:32.716402       1 context.go:132] k8s context run started
I0930 15:33:32.716781       1 context.go:176] Waiting for initial cache sync
E0930 15:33:32.720165       1 reflector.go:178] pkg/mod/k8s.io/client-go@v0.0.0-20200326020446-6240434e1ad6/tools/cache/reflector.go:125: Failed to list *v1.Secret: secrets is forbidden: User "system:serviceaccount:default:ingress-azure" cannot list resource "secrets" in API group "" at the cluster scope
E0930 15:33:32.720499       1 reflector.go:178] pkg/mod/k8s.io/client-go@v0.0.0-20200326020446-6240434e1ad6/tools/cache/reflector.go:125: Failed to list *v1.Service: services is forbidden: User "system:serviceaccount:default:ingress-azure" cannot list resource "services" in API group "" at the cluster scope
E0930 15:33:32.720605       1 reflector.go:178] pkg/mod/k8s.io/client-go@v0.0.0-20200326020446-6240434e1ad6/tools/cache/reflector.go:125: Failed to list *v1beta1.Ingress: ingresses.extensions is forbidden: User "system:serviceaccount:default:ingress-azure" cannot list resource "ingresses" in API group "extensions" at the cluster scope
`

Any Azure support tickets associated with this issue.

Hi @djh82uk , if your AGIC UMI is not within AKS cluster RG, you will need to run:
aksName=""
clusterClientId=$(az aks show -g $resourceGroup -n $aksName -o tsv --query "servicePrincipalProfile.clientId")
az role assignment create
--role "Managed Identity Operator"
--assignee $clusterClientId
--scope $identityId
It's noted in the brownfield tutorial as well.

@djh82uk @3quanfeng I think the issue is related to AGIC not having proper RBAC to kubernetes resource. Cluster is RBAC enabled. This means that when install AGIC on the cluster, you need to provide rbac.enabled=true.
You can upgrade your existing installation using the following command:
helm upgrade <helm-release-name> application-gateway-kubernetes-ingress/ingress-azure \
     --reuse-values
     --set rbac.enabled=true \


CSV editing should occur in-place

I would like to suggest having the CSV editing tab open in place of the raw CSV file tab, in the VSCode plugin.
The CSV editing tab should therefore also feature a button to go back to the raw view.

Hi, any progress on this?

Adding a option to open csv-Files automatically in the editor tab would be fantastic.

I am not using this extension anymore + I am not seeing advancements on this, so I am just closing this issue.


Ignore jetbrains IDE folder

Should be in your global gitignore

Merging because I'm tired of these PRs.


Revisit system video view Picture in Picture support

As an app developer I want to be able to use Picture in Picture with any layout configuration, as for VideoView, without it being interrupted and without any video layer being lost.
Acceptance criteria

The VideoView PiP demos are provided for SystemVideoView as well.
All possible use cases work equally well with SystemVideoView.

Tasks

[x] Update PiP-related demos with corresponding system video view entries.
[x] Adopt similar strategy as VideoView to fix issues.
[x] Go through all PiP use cases (see #612) and ensure nothing is broken.
[x] Check memory profile.
[x] Check behavior on tvOS 16, 17 and 18.
[x] Check behavior on iOS 16, 17 and 18.
[x] Improve documentation if needed (some restrictions are already documented in the PiP article).
[x] Document that auto-switch to PiP does not work when multiple PiP-supporting system video views are displayed at the same time.

A few remarks:

We previously did not implement PiP dismissal for our inline system video view demo. Dismissal is in fact possible but should occur after PiP started, otherwise the system might pause playback for some reason. We have updated our documentation and demos accordingly.
During our implementation we wanted to add a Player parameter to PiP delegate / lifecycle methods. When several PiP-enabled views are displayed at the same time, the implementation theoretically doesn't know which player PiP is started for. We thus thought this additional piece of information could be helpful (e.g. so that implementations can pause other players), but discovered during implementation that this was adding a lot of unnecessary complexity. This should not be an issue, though, as PiP should really be enabled for one view at a time, which means that implementation must know the current player identity already.


Slack or Discord Channel is needed for developers to chat

Libp2p is the perfect for people interested in learning more about:
A) Rust via contributing to a real project
B) Distributed systems
But on-boarding devs is not straight forward.
A Slack (preferable), discord or mastodon node is needed where developers can chat in real time. Slack is easier because people already have it. It may be less cool, but there is less friction with getting people to use it. I have a couple of developer friends who are interested in contributing to Rust Implementation of Libp2p, but on-boarding is not straight forward.
The community can be leveraged to create "stickiness" via social interactions and push people down the marketing and contribution funnel. A lot of information that is given over the chat can then be codified into Docs.
This strategy is starting to work for NYC Blockchain Devs Meetup and is starting to yield results in finding talented devs looking for projects to contribute to.

There's an IRC channel #libp2p on freenode.net

You can also join #libp2p:matrix.org (matrix) or via discord (http://permaweb.io/discord). All are bridged into the same room.

Sure, but that doesn't address the question. If you want more developers to join, you have to lower the friction on the user on-boarding on all aspects of the product. Chat is one of those areas.
One of the ideas in marketing is to go where the users are, not where you want to be, lol.

Looks better. Perhaps the discord channel should be mentioned on the website.

Slack channel would be great… permaweb.io domain has expired

Please update the Discord link

Closing here with https://github.com/libp2p/libp2p/pull/98 pointing to the Matrix channel.
Feel free to comment in case you have additional suggestions.
In general, please use discuss.libp2p.io/ instead of ephemeral chat conversations for questions / discussions / suggestions, given that answers are persisted and thus discoverable for future users.


adc_read() for onboard temperature sensor return wrong value

The value of adc_read() for onboard temperature sensor returns wrong value, when the pico rebooted in the second time.(The first time of reboot is after flash the .uf2 file).
For instance, The temperature value is 26°C in the first time, after reboot (use RUN pin to reset), it will be 406°C。
Here is my code:
// reads the on board temparature in C
int temperature(){
    // init ADC only if it has not been set up yet
    PinSetupADC::instance().initADC();
    // this is just setting some flags - so it does not hurt to call this redundantly
    adc_set_temp_sensor_enabled(true);

    //Input 4 is the onboard temperature sensor - operation only if there is a change
    PinSetupADC::instance().adcSelect(4);
    uint16_t value = 0;
    for (uint8_t i = 0; i < 30 ;i++){
        value = (value + adc_read())/2;
    }
    //T = 27 - (ADC_Voltage - 0.706)/0.001721
    //The ADC_Voltage is equal to adc_read() * 3.3 / (1<<12)
    const float conversion_factor = 3.3f / (1<<12);
    int temperature = 27 - (value * conversion_factor - 0.706)/0.001721;
    return temperature;
}

PinSetupADC::instance() doesn't look like code written using pico-sdk, but some other framework?
Can you provide an (complete) example that shows the problem using only pico-sdk code please?

PinSetupADC::instance() doesn't look like code written using pico-sdk, but some other framework?
Can you provide an (complete) example that shows the problem using only pico-sdk code please?

I have found it was caused by the library which I used, now it was solved.
Thank you very much!


Integer type not working

Getting status 400 with message:
{
"error": "Float wrong type wanted Integer got Float"
}
when trying to insert docs.

Fixed in v0.13.0


Colspan / Rowspan implementation timeline

Hi, is there a timeline for colspan/rowspan implementation?

No, there is not. Currently, I have an illness and my daily life changed drastically. Sorry.

Really sorry to hear that. Good luck.


Incorrect description for decisions permissions

Issue in ./help/using/administration/high-low-permissions.md
Under the manage decisions and view decisions permissions, it says "dataset.delete" is included, but that is incorrect. If I give myself view decisions or manage decisions I am unable to edit, manage or delete datasets.

Thanks for raising this @thaissrguimaraes
We'll check and update shortly
Internal reference: DOCAC-11082

Documentation has been corrected


This page should expand on what 'tightly coupled' means for related sets

I understand that a link from the main package to the optional (using the name of the .appxbundle file + version), and the optional to the main (using the version independent name) defines the related set.
I also understand that tightly coupled means this:
versioning of the packages in a related set is synchronized in a way that won't allow the latest version of any package to be used until all of the related set packages (specified by version in the main package) have completing their install. Packages are serviced independently (atomically) but the use of the packages specified in the set may not be used until all have been updated.  The old version of the packages are retained until this state has been achieved.
Also, the part about packages with code needing to use related sets is incorrect. While related sets help maintain computability between components as they change their ABIs you can use a package with code without this.

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

ID: e47d552a-824c-e79e-f673-fd2e3091bd5f
Version Independent ID: 592317cf-65bc-b698-3332-1cd26d2255d9
Content: Optional packages and related set authoring - UWP app developer
Content Source: windows-apps-src/packaging/optional-packages.md
Product: windows
GitHub Login: @laurenhughes
Microsoft Alias: lahugh

Thanks for your feedback, and I apologize for the delay in responding. I have expanded the related sets discussion with the additional info you provided, and I removed any text that indicates that related sets are required to load code in an optional package.


Emojis not shown in VS Code preview in last version

Emojis are simply not rendered in the last VS Code insiders version:
Version: 1.95.0-insider
Commit: 39fd376a04ae461e1abb4212d6395d7a56959198
Date: 2024-10-24T05:04:31.844Z
Electron: 32.2.1
ElectronBuildId: 10427718
Chromium: 128.0.6613.186
Node.js: 20.18.0
V8: 12.8.374.38-electron.0
OS: Darwin arm64 23.6.0

This was previously possible by just typing the corresponding emoji. With version 0.12 it has stopped working.

The https://github.com/typst/typst/pull/5169 broke the glyph renderers. Turning Abs::raw to Abs::pt in renderers will fix this bug.


fix(FormSelect): Fix select's wrong value

This PR ensures that selects can be both either controlled or uncontrolled while always having a value. This is important in the case an HTML form element use the form data to onSubmit. In this case, every input within the form must have a valid value.

:tada: This PR is included in version 1.0.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Add some tests for account creation/login

Some scenarios:

No account, fitbit login.
No account, withings login.
Withings account, withings login.
Fitbit account, fitbit login.
Withings account, fitbit login.
Fitbit account, withings login.

Verify that users are created or updated as expected.
Will need to mock authlib responses.

Done in #50


Use tablename from phinx.yml config file instead of hardcode value

In the following code phinxlog table name is hardcoded.
https://github.com/odan/phinx-migrations-generator/blob/3883f8169b2d69638cf818c403c16e2beb113c24/src/Migration/Adapter/Generator/PhinxMySqlGenerator.php#L189
I suggest following improvement: use tablename from phinx.yml config file

Hi @FallDi Just added this new feature. Please run composer update and give me a feedback.

@odan thank you for quick reply!
I added small notice https://github.com/odan/phinx-migrations-generator/commit/b99f453b5272c7eb5f9e086a388636e6a4e9ba71#commitcomment-25177214.
Looks  really good, thank you for package!

That's right, this setting is under environments. I fixed it.
http://docs.phinx.org/en/latest/configuration.html#external-variables

Amazing! Thank you


CommonHTML fixes for digits, Jeem, and Haa

In CommonHTML enviroment: this is to fix the render for some scripts related to numbers and letters with (tatweel جـ هـ):
Test case 1
fix position for \frac operator
\frac{1}{2}+\frac{A}{B}+\frac{C}{E}
before:

after:

Test case 2
fix over-line position for numbers
\overline{A}\space\overline{B}\space\overline{0}\space\overline{1}\space\overline{2}
before:

after:

Test case 3:
fix over-line position for Jeem and Haa
\overline{A}\overline{B}\overline{C}\overline{D}\overline{E}\overline{F}
before:

after:

Test case 4:
fix bar position for Jeem and Haa
\bar{A}\bar{B}\bar{C}\bar{D}\bar{E}\bar{F}
before:

after:

Test case 5:
fix numbers position inside square root. Applied on Jeem and Haa too
\sqrt{12345678c}
before:

after:

Test case 6:
fix text alignment for decimal numbers when used with \\
1.234\\\overline{1.234}
before:

after:

Fixes #10

@OmarIthawi  This PR is ready for your review :)

@shadinaif Please bump up the version (like we did in bc9ff76ca144df9d0a7c5834f55bef717b240888) to 2.1.0, to denote the major updates you've done.
I think all of the changes look good, but I need to double check on the Test Case 6 updates shortly.

@shadinaif Please bump up the version (like we did in bc9ff76ca144df9d0a7c5834f55bef717b240888) to 2.1.0, to denote the major updates you've done.
I think all of the changes look good, but I need to double check on the Test Case 6 updates shortly.

Version bump is done @OmarIthawi .
Regarding Test Case 6, this is the fixing code https://github.com/OmarIthawi/arabic-mathjax/pull/16/commits/87049901840ed0c7294855651e10dc151a97ee8b#diff-0f0b9bfbcff9748d4ec0e7b8ebd1ebe0R43

Version bump is done @OmarIthawi .
Regarding Test Case 6, this is the fixing code 8704990#diff-0f0b9bfbcff9748d4ec0e7b8ebd1ebe0R43

Thanks @shadinaif, I've copied it to a new issue. Will take a look soon.

@OmarIthawi Thank you for opening the new issue https://github.com/OmarIthawi/arabic-mathjax/issues/17 . Indeed, the \transn should be retiring (carefully) :+1:
I believe the PR is ready now for your final review


Rewrite the event examples

They are unnecessarily complex for a beginner.
We should make them simpler and demonstrate more common tools like the HTTP client.

I rather disagree with this and I seem to recall the reason for this being opened originating from someone who simply had no understanding of how to actually work with PHP code and it's not our module's job to teach them that.
The existing examples are pretty well documented and not very complex. There's examples for using the database, calling on the API programmatically, and sending email templates which are all things that the majority of modules will want to do and having those examples is valuable. Someone who understands how to work with PHP (or even most programming languages) shouldn't really have issues following these example.
What the module doesn't do a good job of describing is what the DI is, how someone can see what the DI has available, as well as a general list of packages, classes, and tools that are available for them use. Those all need to be better, and getting that covered will also make the examples in the event examples a bit clearer for anyone who is a bit confused.
But at the end of the day, I don't think the event examples themselves are problematic at all and really we just need to do a better job of describing aspects like the DI which fundamental to writing a module for FOSSBilling.


Add default icon to css #2

This PR is from #188.
Thank you for everything!

Thank you for kind of you,  ratiw!

Thank you, @SUKOHI for contributing to Vuetable! :) 👍


Adding a second appliance always results in unavailable entities

I have two Single Pro Line charging stations. Both are configured the same way using ACE Installer (and they are properly online etc). However, the second charging station will not initiate properly using this library: all its entities are unavailable or unknown. I have tried adding the appliance multiple times, restarting, etc. Is this a known problem?

i haven't test with multiple wallbox.

I checked the log files and found this
2024-07-08 16:41:54.232 ERROR (MainThread) [custom_components.alfen_wallbox.alfen] Unexpected error on POST 403, message='Forbidden ', url=URL('https://<IP_ADDRESS>/api/login')
2024-07-08 16:41:54.272 ERROR (MainThread) [custom_components.alfen_wallbox.alfen] Unexpected error on GET 401, message='Unauthorized ', url=URL('https://<IP_ADDRESS>/api/prop?cat=generic&offset=0')
I know for sure the password is correct, as I can connect to the charger via ACE or via the app. The password does contain an '@' though. might that be an encoding issue or something like that?

I checked the log files and found this
2024-07-08 16:41:54.232 ERROR (MainThread) [custom_components.alfen_wallbox.alfen] Unexpected error on POST 403, message='Forbidden ', url=URL('https://<IP_ADDRESS>/api/login') 2024-07-08 16:41:54.272 ERROR (MainThread) [custom_components.alfen_wallbox.alfen] Unexpected error on GET 401, message='Unauthorized ', url=URL('https://<IP_ADDRESS>/api/prop?cat=generic&offset=0')
I know for sure the password is correct, as I can connect to the charger via ACE or via the app. The password does contain an '@' though. might that be an encoding issue or something like that?

this could maybe give the issue. i'll take a look if i can do something on it

@antonclaeys  have you try to change the password without that special character @?

Similar issue, my password contains ! as special characters. Can this cause 403 POST Login errors / 401 GET errors ?
Unexpected error on POST 403, message='Forbidden', url='https://192.168.1.XX/api/login'
Unexpected error on GET 401, message='Unauthorized', url='https://192.168.1.XX/api/prop?cat=generic&offset=0'
Unexpected error on GET 401, message='Unauthorized', url='https://192.168.1.XX/api/transactions?offset=0'
UserID and Pass work fine with ACE INstaller / EVE Connect

Same issue here.
It works with the Ace Installer and EVE Connect but not in HA.
And this is the default password without any special characters.

Same issue here. It works with the Ace Installer and EVE Connect but not in HA. And this is the default password without any special characters.

Logs from the Ace Installer

you use username 'admin'?

I did use the default admin username indeed.
I deleted the integration and installed it again.
Now it works... Let's hope it stays that way!


[ACM-12690] Added webhook check for invalid DiscoveredCluster displayName

Description
Updated Discovery webhook to check if the DiscoveredCluster displayName is invalid. If the field is identified as invalid, the cluster cannot be automatically imported into the ACM / MCE hub cluster.
Related Issue
https://issues.redhat.com/browse/ACM-12690
Changes Made
Updated Discovery webhook to prevent automatic import for DiscoveredClusters with invalid displayName.
Screenshots (if applicable)
Add screenshots or GIFs that demonstrate the changes visually, if relevant.
Checklist

[ ] I have tested the changes locally and they are functioning as expected.
[ ] I have updated the documentation (if necessary) to reflect the changes.
[ ] I have added/updated relevant unit tests (if applicable).
[ ] I have ensured that my code follows the project's coding standards.
[ ] I have checked for any potential security issues and addressed them.
[ ] I have added necessary comments to the code, especially in complex or unclear sections.
[ ] I have rebased my branch on top of the latest main/master branch.

Additional Notes
Add any additional notes, context, or information that might be helpful for reviewers.
Reviewers
Tag the appropriate reviewers who should review this pull request. To add reviewers, please add the following line: /cc @reviewer1 @reviewer2
/cc @cameronmwall @ngraham20
Definition of Done

[ ] Code is reviewed.
[ ] Code is tested.
[ ] Documentation is updated.
[ ] All checks and tests pass.
[ ] Approved by at least one reviewer.
[ ] Merged into the main/master branch.

/cherry-pick backplane-2.6


Minor doc update in clusters_test.go

Description
Minor doc update in clusters_test.go
Type of change

Documentation update

Testing steps
N/A

Codecov Report

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

@@           Coverage Diff           @@
##           master     #316   +/-   ##
=======================================
  Coverage   70.95%   70.95%
=======================================
  Files          12       12
  Lines         730      730
=======================================
  Hits          518      518
  Misses        208      208
  Partials        4        4

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 74a8905...972bf37. Read the comment docs.


In some cases, calling os.exit() will raise an error.

adxe version: lastest
devices test on: 华为 HONOR
developing environments

NDK version: 22.1.7171670
Android Studio: 4.2
cmake version:
Steps to Reproduce:

Play any sound effect once;
Call lua function: os.exit();
Raise an error.

https://github.com/adxeproject/adxe/issues/550

This issue was fixed by the upstream commit: https://github.com/adxeproject/adxe/commit/8ab6ad0139c5a943801fdf917780b294db7c7b6e


Translations for login/sign-up/request password

Hi!
This is my first pull-request ever, so I'm sure something is not right, please let me know if there is something I can fix :)
Richard

Thanks for your feedback :) I'm trying to remove the files not related to translations from the pull-request but its harder than I expected!

Thanks for your PR for Translations, no mater what your submit, I will fix it: ) and hope you can join in with me to make walle more perfect ：)

email me wushuiyong#huamanshu.com please, I want to know something about you. and what nationality are you？I'am Chinese.