Add class support to custom registry

This PR adds a new StylesheetProtocol that can be used to define custom class names within an app or add-on library's registry. These class names allow modifiers to be defined from the Swift client, which should be more performant than sending them from the server.
To use, define a stylesheet within your app's registry:
// ContentView.swift
import SwiftUI
import LiveViewNative

struct ContentView: View {
    var body: some View {
        LiveView<MyRegistry>(.localhost)
    }
}

enum MyRegistry: RootRegistry {
    /// An example of a custom registry stylesheet for a LiveView Native app
    struct Stylesheet: StylesheetProtocol {
        let className: String

        init(_ className: String) {
            self.className = className
        }

        func body(content: Content) -> some View {
            switch className {
            /// A static class name
            case "font-bold":
                content.bold()
            /// A flexible class name that uses substring matching
            case let className where className.starts(with: "color-"):
                let index = className.index(className.startIndex, offsetBy: 6)..<className.endIndex
                let colorName = String("system-\(className[index])")

                content.foregroundStyle(Color(fromNamedOrCSSHex: colorName)!)
            /// If class name is undefined, ignore it
            default:
                content
            }
        }
    }
}

Then, reference them in your template using class:
# hello_live.ex
defmodule MyAppWeb.HelloLive do
  use Phoenix.LiveView
  use LiveViewNative.LiveView

  @impl true
  def render(%{platform_id: :swiftui} = assigns) do
    # This UI renders on the iPhone / iPad app
    ~SWIFTUI"""
    <VStack>
      <Text>Plain text</Text>
      <Text class="color-blue">Text with classname</Text>
      <Text class="color-purple font-bold">Text with classnames</Text>
    </VStack>
    """
  end

  # ...
end

Result:

Closes #1133

@bcardarella Closing this as the stylesheet approach seems more or less validated so I don't think the ability to define client-side class names will be needed.


Account deletion token balance handling

Account Deletion Token Balance Handling
Summary of the change:
Account deletion now attempts to transfer token balances to a beneficiary account and ensures that the deleting account is NOT a treasury.

Closing the PR as functionality has changed and its already implemented


Revert "Merge pull request #65 from staticf0x/use-rpm-extract"

This reverts commit 91604da7cab390f52c77e548e1c2b6d9119b3a37, reversing changes made to 0ce3d4deaee076be9c1cf111bfe3ee3243240cbe.

That's correct


Error in executing create view statement.

Fail to execute create view statement:
create view A
as
select B.*
from B;
The root cause because as statement is in separate line (because for automated formating in some IDE).
By replacing line  l := strings.Join(ncls, "") to  l := strings.Join(ncls, " ") will solve the problem

@eparisot-mitsa
Thank you for creating pull request!
i closed this issue because merged the PR.


[WIP][KServe] KServe v2 Model metadata API

Description
https://github.com/kserve/kserve/blob/master/docs/predict-api/v2/required_api.md#model-metadata
GET v2/models/${MODEL_NAME}[/versions/${MODEL_VERSION}]
$metadata_model_response =
{
  "name" : $string,
  "versions" : [ $string, ... ] #optional,
  "platform" : $string,
  "inputs" : [ $metadata_tensor, ... ],
  "outputs" : [ $metadata_tensor, ... ]
}

We should have a separate KServeRequestHandler, this should be registered before InvalidRequestHandler

We should have a separate KServeRequestHandler, this should be registered before InvalidRequestHandler

OKay, Sure. Changed it.


Action name is optional

action_name is optional based in https://dfuse.io/#websockets-based-api

@kesar I pushed a big update on docs to match it as closely as possible to https://dfuse.io/#websockets-based-api
Have a look at => PR https://github.com/dfuse-io/eosws-js/pull/5


fix(keymaps): let n and N opens folds

It's strange that mappings to n and N do not open folds like its original behavior, so I append zv to manually open folds.

Gently ping @folke for your opinion.
With the new fold column indicator and treesitter foldtext, I've been using fold more often and this is really helpful.
Just to note, expand fold to view search line is the default behaviors of Vim as well, so this feels very natural.


Create ba.txt

Added Italian Nuclear Physics National Institute
subdomain for Section of Bari
for every local section a subdomain should be properly added

@managai Could you please give us a link to a long-term course (one year or longer), somehow related to IT, which this institution offers to students? Also, could you please clarify if the institution is a research institute, or educational one, such as a university or a subsidiary of a university? Thank you!

INFN website (english version): http://home.infn.it/en/
INFN is a national research institute, jointly working with local universities.
INFN offers to students the opportunities to spend their thesis working time on  projects in which INFN is involved. The educational aspect is managed by local universities, so INFN has not a dedicated webpage to list students' opportunities. Several works are related to distributed computing (the argument of both my MSc and PhD thesis) or big data analysis.
INFN email accounts are available only for researchers and students working on INFN projects.
INFN Section of Bari website is: http://www.ba.infn.it/index.php/en/

@managai Do I understand right that the students who study at INFN are also always studying in other universities and have email addresses in these other universities email domains?

Correct

@managai Thank you for the clarification. In this case we appreciate if the students will get their free licenses using their email addresses in their other universities, because this repository is for colleges and universities only. We rarely make exceptions for research institutions which offer some PhD programs to their students, but in case if the students cannot use other email domains. Please let us know if it is the case for some of your students, and we reconsider this issue again. Thank you for the understanding!

@managai I have to close this request without merging. Please reopen and comment if you have an update regarding the issues described above. Thank you for the understanding!


Introduce event aggregator feature

This PR introduces the event aggregator feature in the SDK.
Some work must still be done to find a way to transparently integrate it in connectors logic without major performance impact.

Unfortunately, the connector class doesn't expose a method that gives access to a parsed version of the event. Instead it only have access to the str version of the event.
For this reason, we cannot transparently enable aggregation.


remove duplicate default_action

Description
Removes a duplicate default_action
Issues Resolved
N/A
Check List

[ ] All tests pass. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/TESTING.MD
[x] New functionality includes testing.
[x] New functionality has been documented in the README if applicable
[ ] All commits have been signed for the Developer Certificate of Origin. See https://github.com/chef-cookbooks/community_cookbook_documentation/blob/master/CONTRIBUTING.MD

This looks great! Just need to add your DCO.

just re-committed using the DCO


Xilinx Physical Netlist

This is the first step for a Xilinx physical netlist generator tool.  It only handles LUTs at this point, and doesn't yet handle fractured LUTs (2 logical LUTs being mapped to the same physical LUT)

@dallinjdahl

Sorry you had to go reformat everything.
I'm not quite sure what you mean?  ...I don't think I had to do anything extra.

> Sorry you had to go reformat everything.

I'm not quite sure what you mean? ...I don't think I had to do anything extra.

Mostly just renaming things

@dallinjdahl @reillymck OK, should be good to go now.


Warning for commands taking precedence

A few examples.
sleep 1 + 5;

{
    systemChat str _x;
} forEach allPlayers select {!isPlayer _x};

In the first case, sleep will do 1 and ignore + operation, 1 + 5 should be in brackets to work. This doesn't produce any error in arma, but would be nice if your parser did.
Same with forEach, it ignores select and just goes with allPlayers, same, no error in-game.
Correction, forEach can return data, and select will be applied to that return. Still, this can lead to some weird problems, I'd say warning would be great here.

Good suggestion. Thank you @rebelvg for the different issues added here!

Glad to help somehow.

Tested this commit. This added warning for sleep. But forEach and select do not report anything wrong. Not sure how to define this case cause this example is a 50/50 case, I mean in case you want do a select on result of forEach it's right, but if you wan to do a forEach on result of select it's wrong and there should be brackets added.

Yes. I focused on the issue that is wrong 100%. In the forEach, we cannot tell if it is wrong. Specifically, the following example is valid:
{
    if (_x == _player1) exitWith {[1,2]}
    if (_x == _player2) exitWith {[1,3]}
} forEach allPlayers select 1

and returns 2, 3 or an error. I understand it is a funny construction, but since it is correct, I will not warn for it at the moment.

Gotcha.


Refactor entry page

DESC

new texts from Sina available now

TODOs

[x] refactor code + apply new content

implemented


Remove watching directory introduced in 0.9

Tantivy 0.9 introduced a funcationality to watch and autoreload an index when a change in meta.json has been detected.
It has caused errors to different users on various platforms.
Let's just remove it and "poll" meta.json, or only enable the functionality when
the writer and the reader are in the same process.

Notify library has support for PollWatcher.
https://github.com/notify-rs/notify/blob/main/src/lib.rs
Could have a flag to toggle whether to use the recommended or the poll watcher.
Would this solve our problems?

@halvorboe I'd rather remove the dependency to the notify library to be honest.

@fulmicoton Ok, will look into implementing the same functionality as the library.


command issue - fairseq-hydra-train continue pretraining from checkpoint

🐛 :  fairseq-hydra-train command for continue Pretraining Wav2vec:
How to specify the last checkpoint from the previous pretraining with fairseq-hydra-train command?
@vineelpratap @androstj
I tried
--continue-once
or
--restore-file ../checkpoint_last.pt
or
I did not add anything but then pretraining started from all over from epoch one and it said that no check-point was read
but
none of them worked
To Reproduce
Steps to reproduce the behavior:
I followed the steps in the doc: https://github.com/facebookresearch/fairseq/blob/main/examples/wav2vec/README.md:
fairseq-hydra-train \
    task.data=/path/to/data \
    --config-dir /path/to/fairseq-py/examples/wav2vec/config/pretraining \
    --config-name wav2vec2_base_librispeech

adjusted to:
srun fairseq-hydra-train distributed_training.distributed_world_size=4 +optimization.update_freq='[16]'--restore-file /home/flck/outputs/2023-05-22/07-19-53/checkpoints/checkpoint_last.pt --config-dir /home/flck/fairseq/examples/wav2vec/config/pretraining --config-name wav2vec2_base_librispeech
I tried to continue pertaining with the command suggested here:
but receive ERROR:
fairseq-hydra-train: error: unrecognized arguments: --restore-file /home/user/outputs/2023-05-22/07-19-53/checkpoints/checkpoint_last.pt
when tried to continue pretraining wav2vec
Expected behavior
In the first 12 hours pertaining reached around 16.epochs. I wanted to continue the pretraining from the last saved checkpoint for another 12 hours.
Environment

transformers version: 4.26.1
Platform: Linux-5.4.204-ql-generic-12.0-19-x86_64-with-glibc2.31
Python version: 3.9.7
Huggingface_hub version: 0.10.1
PyTorch version (GPU?): 1.11.0 (True)
Tensorflow version (GPU?): not installed (NA)
Flax version (CPU?/GPU?/TPU?): not installed (NA)
Jax version: not installed
JaxLib version: not installed
Using GPU in script?:
Using distributed or parallel set-up in script?:

#SBATCH --job-name=ol            # Job name
#SBATCH --output=/home/flck/output_.%A.txt   # Standard output and error log
#SBATCH --nodes=2                   # Run all processes on a single node
#SBATCH --ntasks=4                  # Run on a single CPU
#SBATCH --mem=128G                   # Total RAM to be used
#SBATCH --cpus-per-task=4          # Number of CPU cores #--cpus-per-task=8
#SBATCH --gres=gpu:4                # Number of GPUs (per node) #151966: 4
#SBATCH -p gpu                      # Use the gpu partition
#SBATCH --time=12:00:00             # Specify the time needed for your experiment
#SBATCH --qos=gpu-8                 # To enable the use of up to 8 GPUs
Additional context: hydra_train.log file:
)
[2023-05-22 07:20:12,939][fairseq_cli.train][INFO] - task: AudioPretrainingTask
[2023-05-22 07:20:12,939][fairseq_cli.train][INFO] - model: Wav2Vec2Model
[2023-05-22 07:20:12,939][fairseq_cli.train][INFO] - criterion: Wav2vecCriterion
[2023-05-22 07:20:12,941][fairseq_cli.train][INFO] - num. shared model params: 95,044,608 (num. trained: 95,044,608)
[2023-05-22 07:20:12,943][fairseq_cli.train][INFO] - num. expert model params: 0 (num. trained: 0)
[2023-05-22 07:20:12,947][fairseq.data.audio.raw_audio_dataset][INFO] - loaded 1240, skipped 26 samples
[2023-05-22 07:20:16,081][torch.distributed.distributed_c10d][INFO] - Added key: store_based_barrier_key:2 to store for rank: 0
[2023-05-22 07:20:16,081][torch.distributed.distributed_c10d][INFO] - Rank 0: Completed store-based barrier for key:store_based_barrier_key:2 with 4 nodes.
[2023-05-22 07:20:16,082][fairseq.trainer][INFO] - detected shared parameter: feature_extractor.conv_layers.0.0.bias <- feature_extractor.conv_layers.1.0.bias
[2023-05-22 07:20:16,082][fairseq.trainer][INFO] - detected shared parameter: feature_extractor.conv_layers.0.0.bias <- feature_extractor.conv_layers.2.0.bias
[2023-05-22 07:20:16,082][fairseq.trainer][INFO] - detected shared parameter: feature_extractor.conv_layers.0.0.bias <- feature_extractor.conv_layers.3.0.bias
[2023-05-22 07:20:16,082][fairseq.trainer][INFO] - detected shared parameter: feature_extractor.conv_layers.0.0.bias <- feature_extractor.conv_layers.4.0.bias
[2023-05-22 07:20:16,082][fairseq.trainer][INFO] - detected shared parameter: feature_extractor.conv_layers.0.0.bias <- feature_extractor.conv_layers.5.0.bias
[2023-05-22 07:20:16,082][fairseq.trainer][INFO] - detected shared parameter: feature_extractor.conv_layers.0.0.bias <- feature_extractor.conv_layers.6.0.bias
[2023-05-22 07:20:18,068][fairseq.utils][INFO] - CUDA enviroments for all 4 workers
[2023-05-22 07:20:18,068][fairseq.utils][INFO] - rank   0: capabilities =  8.0  ; total memory = 39.586 GB ; name = NVIDIA A100-SXM4-40GB
[2023-05-22 07:20:18,068][fairseq.utils][INFO] - rank   1: capabilities =  8.0  ; total memory = 39.586 GB ; name = NVIDIA A100-SXM4-40GB
[2023-05-22 07:20:18,068][fairseq.utils][INFO] - rank   2: capabilities =  8.0  ; total memory = 39.586 GB ; name = NVIDIA A100-SXM4-40GB
[2023-05-22 07:20:18,068][fairseq.utils][INFO] - rank   3: capabilities =  8.0  ; total memory = 39.586 GB ; name = NVIDIA A100-SXM4-40GB
[2023-05-22 07:20:18,068][fairseq.utils][INFO] - CUDA enviroments for all 4 workers
[2023-05-22 07:20:18,069][fairseq_cli.train][INFO] - training on 4 devices (GPUs/TPUs)
[2023-05-22 07:20:18,069][fairseq_cli.train][INFO] - max tokens per device = 1400000 and max sentences per device = None
[2023-05-22 07:20:18,070][fairseq.trainer][INFO] - Preparing to load checkpoint checkpoints/checkpoint_last.pt
[2023-05-22 07:20:18,071][fairseq.trainer][INFO] - No existing checkpoint found checkpoints/checkpoint_last.pt

Hi @flckv ,
It needs to be checkpoint.restore_file=../checkpoint_last.pt and not --restore-file ../checkpoint_last.pt
Good luck


The link for backend.h5 is expired. Someone please re-upload

The title states it. Re-upload from the similar issue is expired as well.

Nevermind. there are working links for google drive and aws on another issue


data-turbo-permanent turns into <meta name="turbo-permanent-placeholder" ...>

I am using turbo v7.2.0-rc.1.
When I click on an element with data-turbo-permanent, it becomes <meta name="turbo-permanent-placeholder" ...> and its content is gone.

cc @seanpdoyle

@seb-jean thank you for opening this issue. Are you able to reproduce this behavior with https://github.com/hotwired/turbo/releases/tag/v7.2.0-rc.2?

@seanpdoyle, with v7.2.0-rc.2, it came back as before.

with v7.2.0-rc.2, it came back as before.

Thank you for your response. Should we close this issue, or is it still exhibiting unexpected behavior?

Close issue ;)


🐞Bug:

Describe the bug
Show your project to the world heading line height and font size at md and lg screens needs to be fixed.

can i work on this issue? That would be my first contribution in this project.

can i work on this issue? That would be my first contribution in this project.

@jayk-gupta created the PR. If you want to contribute your first code to this repo you can add your projects here. Check the documentation for more information https://github.com/priyankarpal/ProjectsHut/blob/main/contributing.md

@priyankarpal Contributed new Project and Open PR


CC-1330: Update C Docker image to fix cgo warnings

This pull request updates the C Docker image to use the base Alpine image instead of the previous image. This change fixes persistent CGO warnings that were present in the previous image. The new image uses Alpine version 3.19 and includes updates to the GCC and Musl-dev packages. Additionally, the Go version has been updated to 1.21.

Closing this, as the issue wasn't related to docker images.
Instead of fixing the warning log, we are gonna swallow it.
Merged this: https://github.com/codecrafters-io/shell-tester/pull/31, in lieu of this.


Import the Time series datasets (Forecast SQL) -Low Prio

Step 4: Import the Dataset
8 files to download
7 file to map
KxDesc_CashFlows is not needed OR
SQL Query in Step 3 to create DB Table for it is missing.

Hi @msj2
Thanks for your feedback, I have removed the KxDesc_CashFlows download as it is not used in my examples.
Commit
Regards


[SPARK-48490][CORE][FOLLOWUP] Fix Unescape about MessageWithContext

What changes were proposed in this pull request?
The PR aims to solve the issue encountered in the following scenarios:
https://github.com/apache/spark/pull/46897#issuecomment-2177869329
We force the execution of StringEscapeUtils.unescapeJava operation on message of MessageWithContext, which will result in unexpected behavior.
Why are the changes needed?
Fix bug.
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Pass GA
Existed UT
Was this patch authored or co-authored using generative AI tooling?
No.

Background
https://github.com/apache/spark/pull/46897

Reproduction steps
org.apache.commons.text.StringEscapeUtils.unescapeJava("C:\\Users\\runneradmin\\AppData\\Local\\Temp\\spark-9f4b7e74-ea9e-46fc-bde6-1449cc9f6e8e\\userFiles-aaee9fd8-13b2-4cb2-a968-52895086988b\\run-all.R")

cc @gengliangwang @HyukjinKwon @dongjoon-hyun

Regarding the unexpected behaviors that already exist in our Spark, I will work together to fix them once this PR is completed. eg:
https://github.com/apache/spark/blob/484e7ac9acefc46ba6f1bc3019251441d9bb1507/core/src/main/scala/org/apache/spark/util/Utils.scala#L3027

The root cause is that it considers it to be a string, not a character, eg: '\n'
92, 110

10

The root cause is that it be recognized as a string, not a character in StringContext, eg: '\n'
when write as log"\n", it is actually:
92, 110

@panbingkun I don't get it. How does this happen in windows? We are passing entry.message to the log4j methods.

The root cause is that it be recognized as a string, not a character in StringContext, eg: '\n'
when write as log"\n", it is actually:
92, 110

@panbingkun I don't get it. How does this happen in windows? We are passing entry.message to the log4j methods.

It should not only be on Windows, as long as there are strings like "\r", "\t", "\n" in our log messages, similar unexpected behavior will occur.
However, it happens that the file path on Windows is like this: "C:\Users\runneradmin\AppData\Local\remp\spark-9f4b7e74-ea9e-46fc-bde6-1449cc9f6e8e", while on Mac OS or Linux systems, the file path is "/Users/runneradmin/AppData/Local/remp/spark-9f4b7e74-ea9e-46fc-bde6-1449cc9f6e8e", so we did not encounter it before.

@panbingkun I created a new approach in https://github.com/apache/spark/pull/47050

closing in favor of https://github.com/apache/spark/pull/47050


State Sheriff Jurisdiction

Reach out to Sheriff's office to try to get data

@tiktnarg is going to reach out to the Hawaii Department of Public Safety to inquire if they have this data.

https://en.wikipedia.org/wiki/Hawaii_Department_of_Public_Safety#Sheriff_Division has some information on areas.  For example (from the article):

The Capitol Section provides an immediate law enforcement presence at the Hawaii State Capitol, Hawaii Civic Center Complex, Washington Place, and other locations deemed necessary by factors other than public safety related statistics. A recent agreement (2013) between the Sheriff Division and the Hawaii Community Development Association (HCDA) placed stipulations that the Sheriffs provide Law Enforcement for the Kaka'ako area as well as Kewalo Basin. Deputies have also been tasked with providing patrols at the Mayor Rights Public Housing Complexes. Deputies, arrest and or cite violators of statutes or ordinances during vehiclular patrol.

After discussion with @tiktnarg, it may be the case that the State Sheriff has jurisdiction anywhere in the state.  We may need to identify which properties/boundaries are specifically covered by the dept. (e.g. libraries, courthouses, & other state buildings).


User avatar is showing twice in front of question

When a common pic if selected by site to show as user avatar for all users, then that pic is showing twice in front of question on home page. Have a look at the image.

it's fixed in new version.

Thanks for the fix... :)


add Metrics api

Changes:

Added metrics API
Added test cases
Support MCP/ DCP cards

Coverage decreased (-1.9%) to 79.692% when pulling 505f620f771aeb3573b841a7f6f6d2c02e459910 on aravuri/cp_metric_api into d9de74f38ad182a7049731f3843912b9860981a7 on master.

@anandaravuri Thanks for taking care of these comments.  In your conversion to memset_s, there are instances where the value and length fields are actually switched.  Please fix those memset_s calls, then I think we are ok to go.

Coverage decreased (-1.9%) to 79.715%  @anandaravuri with this submission, we are below our goal of 80%.  Could you please add some test cases for your sample application to help us recover to 80%?  I think that it's also down because the BMC code has no tests, right?


Implement delete contact command for contact list

Fixes #151
This PR adds the implementation for a command to delete contacts from a user's contact list. This includes the implementation for the parsing of user inputs and execution of the command to delete a contact.
The following classes were added:
DeleteContactParser
DeleteContactCommand

LGTM.

Codecov Report

Merging #152 into master will decrease coverage by 1.06%.
The diff coverage is 0.00%.

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


KeyboardAvoidingView covers the whole view which is wrapped in it on Android

Description
KeyboardAvoidingView covers content on Android.
iOS:

Android:

React Native version:
0.63.3
Steps To Reproduce
Provide a detailed list of steps that reproduce the issue.

Wrap stack navigator in KeyboardAvoidingView' with style={{flex:1}}` and any behavior ("padding", "height", "position")
Close and reopen app several times, then dismiss the keyboard
KeyboardAvoidingView covers the whole view wrapped inside

Expected Results
View is not expected to cover the whole screen, but has to only add some padding on bottom when keyboard is open
Snack, code example, screenshot, or link to a repository:
In this repo we can see the result attached in pictures(iOS is perfect, Android is buggy). KeyboardAvoidingView has a blue background and the wrapped content has yellow background to make it more visible.
This result is visible in a plain app, but in the actual app, this happens after minimizing and reopening app several times.
https://github.com/rubina-shakhkyan/buggyApp

Has anyone found the solution yet? This same problem is also occuring to mine as we

ll

Seems like the behaviour="padding" property breaks it on Android. Right now I've tackled it by implementing:
behavior={Platform.OS === 'ios' ? 'padding' : undefined}

31922
Get Outlook for iOShttps://aka.ms/o0ukef

From: Kevin @.>
Sent: Wednesday, December 22, 2021 3:21:30 AM
To: facebook/react-native @.>
Cc: Subscribed @.***>
Subject: Re: [facebook/react-native] KeyboardAvoidingView covers the whole view which is wrapped in it on Android (#31922)
Seems like the behaviour="padding" property breaks it on Android. Right now I've tackled it by implementing:
behavior={Platform.OS === 'ios' ? 'padding' : undefined}
—
Reply to this email directly, view it on GitHubhttps://github.com/facebook/react-native/issues/31922#issuecomment-999373028, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AR5INQN6ZEISKZBCM746PK3USGDAVANCNFSM5BGRHZBA.
You are receiving this because you are subscribed to this thread.Message ID: @.***>

I solved it by implementing KBAvoiding view manually, but the issue is still there. Behavior height/position doesn't add this extra white space, but also doesn't add the required offset from the bottom.

Seems like the behaviour="padding" property breaks it on Android. Right now I've tackled it by implementing:
behavior={Platform.OS === 'ios' ? 'padding' : undefined}

More info on this (we're colleagues): not setting the behaviour seems to work from Android 11 and onwards. But for Android 10, none of the behaviors seem to actually work or they behave inconsistently.padding has the result from OP, 50% of the time, height doesn't let me scroll to the end of the list and position renders completely blank.
I don't understand how something this blocking and important has been so buggy throughout the years. I'd like to help fix this problem but I have no clue where to start.


Work on bottom and center?

Hi,
It work on bottom and center?
Thanks.

@paulo-coutinho only top-center. No plans to add additional options at this time. This is supposed to be just a replica of what Apple offers - not much more, not much less :-)


[DOC] documentation mentions wrong path

The documentation says:

cd %AppData%\Notepad++\userDefineLangs

But it's:

cd %AppData%\Roaming\Notepad++\userDefineLangs
------->-------->^^^^^

您好，邮件已收到，非常感谢您的来信！

I've tried echo %AppData% and the Command Prompt responses with "Roaming".
Which Windows are you using? Thanks.

Confirmed the issue being invalid. Thanks for your report.


RHOAIENG-205-Define the standard terms

JIRA: RHOAIENG-205
Description

Adding a glossary for stand terms. This is just the first set. We plan to iteratively update this terminology list. Ref: https://github.com/LaVLaS/ai-edge/blob/glossary/docs/glossary.md
How Has This Been Tested?

N/A
Merge criteria:

[x] The commits are squashed in a cohesive manner and have meaningful messages.
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[x] The developer has manually tested the changes and verified that the changes work

/lgtm

/retest

Rebase is needed

@StevenTobin @adelton I have made the changes according to your comments, if everything looks good can any of you mark it approved?

lgtm but @adelton's comments were more substantive than mine so I'll let him approve.

LGTM.

/approve


Melee Attack Timer

Is your feature request related to a problem? Please describe.
The problem is I am very bad at attempting to prayer flick when it comes to prayers like rigour and piety, and thought there must be a better way.
Describe the solution you'd like
I would like a little stop-watch like timer that times down from when your next attack will hit. that way you can turn on your prayer right between .5 and .01 and be able to consistantly time your prayer flicks
Describe alternatives you've considered
Looked to see if anything liked that existed. I do alright, but tasks l ike turoths when I have to switch up my melee weapon and the speeds are different throws me off.
Additional context
I hope it's considered, I believe many would like it.

Duplicate of #4087


Summary of nested repeating group is confusing

Description of the bug
If you create a repeating group that contains a nested repeating group. The summary of the first repeating group will show the nested repeating group as a single field with an empty value. After https://github.com/Altinn/app-frontend-react/pull/812 it looks even more confusing, as it says that no information has been entered, even though it may well have. Update: Since #875 nested groups are no longer shown as a field in "small" group summary. This is not an issue when using the largeGroup: true option, as this will show the entire nested group with all of its fields.
In this example there is in fact an element added to the nested group, but it still says that no information has been entered.

Not sure how these kind of summaries should be handled. Should the nested group be hidden from summary? Show just the number of elements? Is there some possible string representation of a repeating group?
Maybe UX should get involved? @Febakke
Steps To Reproduce

Create a repeating group containing a nested repeating group.
Create a summary for the first group, using largeGroup: false.
Fill inn information in both the first and nested repeating group.
Observe that the entry in the summary for the nested group says that no information has been entered.

Additional Information
No response

Relevant slack discussion related to automatic PDF generation: https://altinn.slack.com/archives/C02EVE4RU82/p1679396382964929

Closing, will be solved by https://github.com/Altinn/app-frontend-react/issues/2052


Module loader/builder & Graceful shutdown for Providers & Lifecycles

local root = prvd.start()
-- later, shutdown is also binded to game.Close
root.shutdown()

---

local event = Lifecycle("onEvent", prvd.fireConcurrent)
function event:shutdown()
  -- cleanup
end

---

local provider = {}

function provider:onShutdown()
  -- cleanup
end

Some notes from the Discord thread:

what if a custom lifecycle has events?
DarkModule: how would I clean it up?
store the event somewhere and either hook onto onShutdown and clean it up (via the lifecycles package) or listen to game.BindToClose / game.Close
i havent figured out a good way to do this yet
i might follow what flamework did and have prvd.start return an object to extinguish stuff
and give lifecycles a way to be cleaned up
can I put a lifecycle inside a provider?
absolutely
but dont put it inside a lifecycle method
but wouldn't that cause lifecycle to be called after onstart?
because the execution model shows lifecycles to be called before onstart no?
ahh hah but howwould I clean up the connection from SomeService.Event?
ok for example lets say I want a onPlayerDeath lifecycle
humanoid changes everytime a character is added
just an example, I want to clean up other connections that are related to humanoid from before
how would I do that?
there isnt a great way yet sadly
uhh
what the lifecycles package does is
store the connections smwhere
and disconnect them onshutdown
ok going back to an older topic, you should have a lifecycle (for example :lifecycleInitialize) as apart of all providers that runs before prvd.Lifecycle()  which can include custom life cycles inside providers. But this can become hectic and pretty bloated
a lifecycle provider can just specify loadOrder = 0
and it will load before every other provider
the default is 1
I know this is so we can provide a clean up to events
yeah
in an ideal world onShutdownw ould be moved away from the lifecycles package
ctually offtopic but onStart is distinctly different from real lifecycles
only reason why onStart is constructed inside startup is bcuz of startup options
ok the event:shutdown() method shhould fiix my original problem
it doesnt exist yet
at all
but i should keep it in mind
yep
ok great

Also with this there probably should exist an equivalent to Flamework's ModuleBuilder:

Possible API:
local root = prvd.root()
  :useProvider(provider)
  :useProviders(arrayOfProviders)
  :useModule(inst)
  :useModules(arrayOfInstances)
  :useHook("method", function() end)
  :start()

-- later

root:stop()

Should also consider how lifecycles will work here. Might need an onAdded and onRemoved hook for lifecycle objects.


Minecraft spacebar not working while running

While Terminus is running in any state (in/out session, minimized or in the taskbar) the spacebar key in Minecraft stops working all together.
I’ve experimented a bit with this bug and it’s exclusively the space key, I’ve rebound my jump to V and it works perfectly fine, it’s only the space key (oddly enough) that stops working.
As soon as I exit Terminus (again, in any form wether it be in taskbar or minimized not in session) then my Minecraft space key works like magic once more.
I’m running Windows 10 with the latest installed release of Terminus

Deassign the default toggle-window hotkey in the settings.

Ctrl+space is the default binding for switching input method in some environment. Maybe a new key binding for 'toggle-window' should be used.

Thanks, as always


tests will break when pytest upgrades implicitly on travis, let's pin the version for now.

This is a temporary fix for #14 .

Thanks but it was easier to fix the right way. :)

Works for me :).


arch/arm64: cleanup configs independent of CPU core types

Summary
Use CONFIG_ARCH_CHIP_QEMU instead of CONFIG_ARCH_CHIP_QEMU_A53. This is because these configurations depend on the hardware configuration of qemu (memory map, irq numbers, etc.). They independent of CPU core types.
Memory map for qemu virtio:
https://github.com/qemu/qemu/blob/master/hw/arm/virt.c
Impact
None
Testing
Confirmed that OS booted on qemu for both cortex-a53 and cortex-a72.
 qemu-system-aarch64 -cpu cortex-a53 -smp 4 -nographic -machine virt,virtualization=on,gic-version=3 -net none -chardev stdio,id=con,mux=on -serial chardev:con -mon chardev=con,mode=readline -kernel ./nuttx

 qemu-system-aarch64 -cpu cortex-a72 -smp 4 -nographic -machine virt,virtualization=on,gic-version=3 -net none -chardev stdio,id=con,mux=on -serial chardev:con -mon chardev=con,mode=readline -kernel ./nuttx

Signed-off-by: Hidenori Matsubayashi<EMAIL_ADDRESS>

Hi @MasayukiIshikawa @xiaoxiang781216
Can you please review?

Or, perhaps we should create a new config for qemu virt (e.g. CONFIG_ARCH_CHIP_QEMU_VIRT).

Or, perhaps we should create a new config for qemu virt? (e.g. CONFIG_ARCH_CHIP_QEMU_VIRT).

it's more simple to remove _A53 suffix.

let's ignore the temp ci broken and merge this simple change directly.

Or, perhaps we should create a new config for qemu virt? (e.g. CONFIG_ARCH_CHIP_QEMU_VIRT).

it's more simple to remove _A53 suffix.

@HidenoriMatsubayashi could you remove all _A53, if the code work with other armv8a core.

could you remove all _A53, if the code work with other armv8a core.

Ok, I'll do try that.

@HidenoriMatsubayashi
Please use @masayuki2009 the next time.

let's ignore the temp ci broken and merge this simple change directly.

@xiaoxiang781216
Do you know why the CI breaks now?

Let's ignore the ci temp break.

Thanks for the reviews.

I think we should also change the name CONFIG_ARCH_BOARD_QEMU_A53 (+ directory name).

I'll create a new patch and send it later.


Multiple Wildcard Letsencrypt PHP sites on EasyEngine v4

Hey there,
I had a single *.example.com wildcard website working just fine, but I attempted to add a second wildcard site *.foo.com to the same machine and now it has taken over. Requests to the previously working wildcard website show a certificate domain missmatch error.
Both wildcards resolve to the same IP address.
Here's a live example (*.mistcrm.com was added and working first, then I added *.crmapp.io and it seemed to become a default primary)
I'm going through and deleting things to see if that helps. I've restarted everything too.
 curl -v https://test123.mistcrm.com
* Rebuilt URL to: https://test123.mistcrm.com/
*   Trying <IP_ADDRESS>...
curl: (51) SSL: certificate subject name (crmapp.io) does not match target host name 'test123.mistcrm.com'

System Information

[x] ee cli info
[x] lsb_release -a
[x] docker version
[x] docker-compose version

# ee cli info
+-------------------+--------------------------------------------------------------------------+
| OS                | Linux 4.15.0-1021-aws #21-Ubuntu SMP Tue Aug 28 10:23:07 UTC 2018 x86_64 |
| Shell             | /bin/bash                                                                |
| PHP binary        | /usr/bin/php7.2                                                          |
| PHP version       | 7.2.14-1+ubuntu18.04.1+deb.sury.org+1                                    |
| php.ini used      | /etc/php/7.2/cli/php.ini                                                 |
| EE root dir       | phar://ee.phar                                                           |
| EE vendor dir     | phar://ee.phar/vendor                                                    |
| EE phar path      | /opt/easyengine/services                                                 |
| EE packages dir   |                                                                          |
| EE global config  | /opt/easyengine/config/config.yml                                        |
| EE project config |                                                                          |
| EE version        | 4.0.9                                                                    |
+-------------------+--------------------------------------------------------------------------+

# lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.1 LTS
Release:	18.04
Codename:	bionic

 docker version
Client:
 Version:           18.09.1
 API version:       1.39
 Go version:        go1.10.6
 Git commit:        4c52b90
 Built:             Wed Jan  9 19:35:31 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          18.09.1
  API version:      1.39 (minimum version 1.12)
  Go version:       go1.10.6
  Git commit:       4c52b90
  Built:            Wed Jan  9 19:02:44 2019
  OS/Arch:          linux/amd64
  Experimental:     false

# docker-compose version
docker-compose version 1.23.2, build 1110ad01
docker-py version: 3.6.0
CPython version: 3.6.7
OpenSSL version: OpenSSL 1.1.0f  25 May 2017

@dtbaker can you send the content of the following commands to<EMAIL_ADDRESS>-

cat /opt/easyengine/logs/ee.log
more /opt/easyengine/services/nginx-proxy/conf.d/* | cat

This will help us figure out the issue better.

Closing it as there has been no response from OP for > 1 month


Exception: uninitialized element

Hey there. I'm trying to build WASM module, which contains protobuf library, with support of pthread (to be able to terminate it in case of timeout). Without pthread support everything is good and running (also without using protobuf it is okay too). If I add it, module is still built successfully by emscripten, but when I try to use module in c++ code wamr throws "AOT module instantiate failed: Exception: uninitialized element". Can you give any insights into debugging this issue? Is there any way to find out which element is uninitialized and somehow initialize it?
P.S. If it helps I build protobuf by instruction https://github.com/dsyer/protobuf-wasm#building-protobuf

Hi, just want to make sure we are on the same page. You can run your application in wasm format, but after it is compiled to aot format, it has the error you describe, right?

Not really. I do the following

compile my wasm module to .wasm with emscripten

    -I$PROTOLIB_PATH $PROTOLIB_PATH/.libs/libprotobuf.a \
    -matomics -mbulk-memory -Wl,--shared-memory,--no-check-features \
    -Wl,--export=__heap_base,--export=__data_end,--export=__wasm_call_ctors \
    -Wl,--export=malloc -Wl,--export=free \
    -Wl,--no-entry \
    example.cpp -o example.wasm```
2. compile .wasm to .aot with wamrc
```wamrc --enable-multi-thread --target=x86_64 --cpu=ivybridge -o example.aot example.wasm```
3. use this module inside my c++ code using wasm_runtime_load, wasm_runtime_instantiate, etc.
Two first steps are finished successfully without errors. But when using module it throws the error described above

What if you are loading the wasm file rather than aot file? Will it still have similar errors?

If I remember correctly, emcc's pthread support for standalone mode may not be ideal. We have encountered some non-trivial issues about it before. I don't know if you can switch to using wasi-sdk instead, given the protobuf link you posted is compiled with emcc, I think it will be some extra work to use wasi-sdk to compile that library.
PS: When you can get it run successfully, for thrown exception debugging you can refer to samples/debug-tools, which explains how to find the line number of the source code based on the call stack dumped when an exception is thrown.


MFLog on convergence branch

This is still in progress but pushing for reference.

I have confirmed that everything in the original MFLog PR on master seems to have made it to this one so we should be good to go here.


Tighten security of config files and db

Sensitive and secret information can be stored in these files, so we don't want them accessible to everyone on the machine.
Here we move all file locations into a directory in snap_common that only root has access to.
This means:

headscale can only be used and interacted with as root
the sensitive files can only be read by root

This should be fine from a usability point of view, because the daemon is already a system service running as root, so only allowing root
to use the admin commands via headscale seems reasonable.

Any reason why you moved the files to a new folder? isn't setting them to 600 enough?

Any reason why you moved the files to a new folder? isn't setting them to 600 enough?

The files may not be created at the time the configure hook is run, so we can't guarantee the files won't be sitting on disk with 644 permissions for some time. This way, the directory will always have 700 permissions, and all the files can be created there by headscale whenever it likes, and no data is leaked to other users.


The output result when running the yolov7 converted DLC shows many bounding boxes.

Hello, I used the official yolov7 pre-trained model 'yolov7.pt and followed the instructions in the wiki to convert 'yolov7.pt' into ONNX, and then into DLC. I'm using Qualcomm SDK version 2.22.6.
Additionally, I directly compiled and executed the application in a Docker environment using x86 architecture. The execution was successful, but the post-processing part shows many bounding boxes, which seems like there is an issue with NMS.
I suspect that there might be an issue with my conversion process because I didn't encounter the warnings mentioned in the wiki when converting the official pre-trained model. Is there any way to help me verify this? Or could you provide the converted DLC for me to try?
Thanks.

Hi, Can you provide some output images or screenshots?

Below are the resources I used and the output results.

model (include: pt, onnx, dlc, image): Googledrive
output

Hi,
I think there are a few adjustments you could try. First, you can modify the threshold for class confidence or the nms in the line#101 and line#129 of the object detection file. Observe if these changes lead to any improvements, although I don't believe this will make a significant difference.
I suspect the main issue might lie in the postprocess() function. The code I provided is primarily for yolov7-tiny, so if you're working with yolov7, you'll need to modify the code to align with that model's architecture.

The size of feature map

float size[3] = {80, 40, 20};

Strides

float strides[3] = {8, 16, 32};

The grid of anchors

float anchorGrid[][6] = {
  { 12, 16, 19, 36, 40, 28},
  { 36, 75, 76, 55, 72,146},
  {142,110,192,243,459,401}
};

Index shifting in line#74

if (i == 1) {
  index += 9600;
} else if (i == 2) {
  index += 19200;
}

I'm not very sure if the values I provided above are all correct, so it would be a good idea to double-check them before compilation. Besides, make sure you've trimmed the model when converting it to *.dlc format, as snpe cannot handle 5-dimensional data types (this usually occurs before the Reshape layer).
The grid size is set to 28 because I've trained my model with only 23 classes, and I’ve also included the bounding box information (x, y, height and width) along with the confidence score.

Hi, I successfully used the DLC for inference following your advice,thansk a lot.Here is how I made the adjustments.

Chaneg size, stride and anchor to yolov7

    float size[3]={20, 80, 40};
    float strides[3] = {32,8,16};
    float anchorGrid[][6] = {
        {142,110,192,243,459,401},
        { 12, 16, 19, 36, 40, 28},
        { 36, 75, 76, 55, 72,146}
    };

Modify index to 600 and 19200

  if (i == 1) {
      index += 6000;
  } else if (i == 2) {
      index += 19200;
  }

Change 28 (23 + 5) to 85 (80 +5)

But I still have a few questions. Thanks.

I would like to understand the calculation of the index. From what I know, it seems to be related to the three feature map sizes in YOLOv7, which are 20x20, 40x40, and 80x80. However, I'm unable to deduce how to handle the index when i=1 and i=2.
Why is it necessary to first filter by confidence#101 and then filter the results again by score#116?
Lastly, I'm currently running inference on x86 using the DLC in float32, but the recognition accuracy is noticeably worse compared to before the conversion. Do you have any further suggestions or recommendations?"

I would like to understand the calculation of the index. From what I know, it seems to be related to the three feature map sizes in YOLOv7, which are 20x20, 40x40, and 80x80. However, I'm unable to deduce how to handle the index when i=1 and i=2.

In your case, i==0 is 20x20 feature map, i==1 is 80x80 feature map and i==2 is 40x40 feature map. Thus, to my understanding,
if (i==1) {
  index += 1200;   // 20x20x3
} else if (i==2) {
  index += 20400; // 20x20x3+80x80x3
}

It seems has some difference to yours.

Why is it necessary to first filter by confidence#101 and then filter the results again by score#116?

My purpose here is to focus only on those bounding boxes with higher confidence scores to quickly eliminate boxes with lower confidence scores, thereby reducing the number of subsequent calculations. This approach avoids performing further classification score calculations on all candidate boxes, decreasing unnecessary computation, which can significantly improve efficiency, especially when dealing with a very large number of candidate boxes.

Lastly, I'm currently running inference on x86 using the DLC in float32, but the recognition accuracy is noticeably worse compared to before the conversion

I don't quite understand what you mean here.

Hi! Thank you for response. After our discussion, I found the other way. In the end, I used the command python export.py --weights yolov7.pt --grid --simplify --img-size 640 640 to convert the model to ONNX during the conversion process. Then, I performed the post-processing, and the results were quite good. Thank you!


also checkout tcmalloc?

When currently trying to compile I get the following error, but I also don't want to install tcmalloc system wide:
CMake Error at cmake/FindTcmalloc.cmake:43 (message):
Could NOT find Tcmalloc library
Call Stack (most recent call first):
CMakeLists.txt:16 (find_package)
Are we currently dependent on tcmalloc or do we have a version that could be output if tcmalloc is not available?

Using the cmake option -DUSE_TCMALLOC=OFF usage of TCMalloc can be disabled and replaced with 'standard malloc'. Should I default to TCMalloc being off? This slows down multiterminal_cut in some cases.

maybe just output this instead of the error?
this way users know what to do fast.
Thanks Alex!

Sure, can do.

Added a note to the error, it now reads "Could NOT find Tcmalloc library. Disable using -DUSE_TCMALLOC=off!"


Duration Parse help?

Is there any way to get DurationParse to return seconds instead of milliseconds? I really want to use that functionality for my ban system. If you say DurationParse("30d", Expire). Expire will overflow and return negative value.

Unfortunately no, it would be useful if there were two versions of the function for different granularity of units.

Thanks, anyway! Will try something else. May be I will try to parse the string myself.

I'm going to keep this open in case anyone is interested in contributing this feature - it would be quite simple to implement by changing how this is calculated: https://github.com/Southclaws/pawn-chrono/blob/master/src/natives.cpp#L121


so what's the advantanges of bash.py compared to  subprocess.run

this just simplifies things for you


Prepend TableDirector mutable functions with @discardableResult

Swift 3 version produces warnings about unused return values. For example,
you need to change next function
    open func append(section: TableSection) -> Self {

        _ = append(sections: [section])
        return self
    }

to
@discardableResult  open func append(section: TableSection) -> Self {

     _ = append(sections: [section])
     return self
 }

Fixed.


feat: new setup and updated to use core theme

@tjvantoll This may be a good new starting setup with the theme installed by default. Lemme know if you'd like to see more or think of any adjustments. 👍
Once we have the final new setup, I will submit a separate PR to https://github.com/NativeScript/template-hello-world-ts with the same setup.

When I switch themes the text disappears, and I’m also unable to switch back to the light theme without problems. The latter is likely a bug in the modules, but for now we may want to avoid recommending that the user switch themes in the template.

Here’s what I think I’d like the top to say under “Welcome to NativeScript”. Let me know what you think. Not sure if I like plain text links or not. If it looks silly we can come up with some more generic text.

You are now set up to begin developing for iOS and Android. When getting started you may find the following resources helpful:

A full list of the class names you can use to customize the look of your NativeScript apps: https://docs.nativescript.org/them.

News and updates about NativeScript: https://www.nativescript.org/nativescript-newsletter and https://twitter.com/nativescript

Help if you run into problems: http://stackoverflow.com/questions/tagged/nativescript

@tjvantoll Great feedback thanks. I have pushed up a lot of improvements based on your feedback. Additionally, I believe this new setup will be incredibly helpful as it provides a modal example as well baked in showing how to do a number of frequently asked questions.

Looks great!
Just one small thing: when I try to run this I get the following error. I’m guessing it’s just a small typo.
JS ERROR ReferenceError: Can't find variable: url

And one last suggestion. I feel like the Basics tab needs a short sentence at the top explaining what that page is. Like, “Here are a few of the class names you can add to your UI components to style a NativeScript app.”

@tjvantoll Just pushed up that url fix and added the description to top of basics, good suggestions. I believe this is all ready to go now. If you are happy with this, I can apply the same thing to the -ts typescript template.

When I try to open these links on iOS now I get the following :(
Sep 13 12:16:46 VANTOLLMAC foo[11067]: App Transport Security has blocked a cleartext HTTP (http://) resource load since it is insecure. Temporary exceptions can be configured via your app's Info.plist file.

Not sure we’d want really want to change the Info.plist here because this is the starter template. Hmmmmmmm.

@tjvantoll I just pushed up the addition to the Info.plist needed. I believe it will be good to start users out with that setting open and we can add a README that is pulled down which has a section on security about this setting for iOS >= 9.
A lot of folks get tripped up by that with the Info.plist and getting them off to a good successful start will be better than leave them to run into an error there.
As long as addressed clearly in a sample README, I think it will be good. If you want to take a stab at a nice succinct README we could include with this template, lemme know and we'll add it.

@tjvantoll adjustments made ^


Implement number theory functions

It would be nice to implement some number theory functions such as the extended GCD, the modular inverse and the modular power. See https://github.com/vks/discrete-log/blob/master/src/main.rs for a generic implementation that could probably be implemented more efficiently inside this crate.

[ ] Modular arithmetic: addition, subtraction, multiplication.
[ ] Modular inverse, division.
[ ] Modular exponentiation.
[ ] Modular exponentiation to signed powers.
[ ] GCD
[ ] Extended GCD

There is now direct support for modular arithmetic with the ModuloRing type.

All these functions are now implemented.


do proper string escape for zson string/bstring/error etc

An example of this @philrz bumped into with zq commit fc70a73:
$ echo '{ref_id:"\x00\x00\x00\x00" (bstring)} (=0)' | zq -Z 'put foo=ref_id:bstring' -
{
    ref_id: "\x00\x00\x00\x00" (bstring),
    foo: "\\x00\\x00\\x00\\x00" (bstring)
} (=0)

That is, it was a surprise that casting a type to the same type added another layer of backslash rather than the no-op it was expected it to be. It's kind of a long story, but the tl;dr is that this was encountered while working on shaping. It seems largely cosmetic since both of those print back out the same:
$ echo '{ref_id:"\x00\x00\x00\x00" (bstring)} (=0)' | zq -Z 'put foo=ref_id:bstring' - | zq -Z -
{
    ref_id: "\x00\x00\x00\x00" (bstring),
    foo: "\x00\x00\x00\x00" (bstring)
} (=0)

However, that seems like it might be wrong, since the ZSON spec says that \\ would have been interpreted as a genuine backslash character and not the lead-off to a hex escape.
Regarding this example, @mccanne noted:

The spec is clear on behavior and we just need to bring the code into conformance… https://github.com/brimsec/zq/blob/master/zng/docs/zson.md#331-string-escape-rules

@mccanne remarked that this is the kind of fix @nwt is really good at. :wink:

@nwt checked this one out and saw that it's already fixed on main. I did a quick binary search and confirmed that this started working as of Zed commit a7522c2, which was associated with #2355 (thanks @mccanne!).
$ zq -version
Version: v0.29.0-132-ga7522c26

$ echo '{ref_id:"\x00\x00\x00\x00" (bstring)} (=0)' | zq -Z 'put foo=ref_id:bstring' -
{
    ref_id: "\x00\x00\x00\x00" (bstring),
    foo: "\x00\x00\x00\x00" (bstring)
} (=0)

The syntax for casts has since changed, of course, so on the most current Zed such as commit a7522c2, now it looks like:
$ zq -version
Version: v0.29.0-132-ga7522c26

$ echo '{ref_id:"\x00\x00\x00\x00" (bstring)} (=0)' | zq -Z 'put foo=bstring(ref_id)' -
{
    ref_id: "\x00\x00\x00\x00" (bstring),
    foo: "\x00\x00\x00\x00" (bstring)
} (=0)

Thanks @nwt and @mccanne!


Tooling in its own package?

Should we put eslint + prettier config in a package for example?
Also, husky / lint-staged are not configured yet, I didn't research how to properly do it for a mono-repo

Should we put eslint + prettier config in a package for example?

I wouldn't bother, people expect to find them in the root, there isn't a huge amount of value in hiding them.

Also, husky / lint-staged are not configured yet, I didn't research how to properly do it for a mono-repo

I'd recommend against tools that can be easily skipped and and get in the way of those making atomic commits (which is a good practice). They also increase friction for contributors. I'd just add a lint action for PRs and leave it at that.

Should we put eslint + prettier config in a package for example?

I wouldn't bother, people expect to find them in the root, there isn't a huge amount of value in hiding them.

Also, husky / lint-staged are not configured yet, I didn't research how to properly do it for a mono-repo

I'd recommend against tools that can be easily skipped and and get in the way of those making atomic commits (which is a good practice). They also increase friction for contributors. I'd just add a lint action for PRs and leave it at that.

One benefit of having shared config is extensibility. Looking at popular projects as an example: SveliteKit https://github.com/sveltejs/svelte/blob/master/src/runtime/tsconfig.json
They have a base tsconfig in root and extend it in individual tsconfigs. The compiler configs are overridden as needed.
Same benefit applies to eslint and prettier (shared config).

That doesn't require a tooling package though. You just stick everything in root then individual packages can tweak what they need to.

That's true, I'm on the same page - a benefit of putting configs in own packages (eg, extensibility) can be achieved w/o packages.

Looking into shared eslint config (without package)


BUG: net.add_poisson_drive() throws error depending on rate_constant type

Weird bug, if you set cell_specific=False and use a rate_constant of type float, you get the following error at simulation time
net = jones_2009_model()
weights_ampa_noise = {'L2_basket': 0.01, 'L2_pyramidal': 0.002,
                      'L5_pyramidal': 0.02}
net.add_poisson_drive('noise_global', rate_constant=2.0, location='distal',
                       weights_ampa=weights_ampa_noise, space_constant=100,
                       n_drive_cells=1, cell_specific=False)
simulate_dipole(net, tstop=100)

Now if you set rate_constant=2, an integer instead of a float, the simulation runs fine...
@rythorpe maybe you have an idea? I remember you improved the terminology for n_drive_cells API but this might have existed previously since a uniform poisson drive is a pretty uncommon use case

Yeah, I'm guessing the rate_constant variable somewhere gets typecasted differently based on it's target population if it gets entered by the user as type int vs float vs dict. Probably here.
Then there looks like an inconsistency in _drive_cell_event_times() where when the target_type is set to 'any' (i.e., for a non-specific drive that targets all cells), the function assumes the value of drive['dynamics']['rate_constant'] is of type int or float (which it's not, because the float was typecasted into a dict of identical floats in Network.add_poisson_drive()).
I'd suggest just removing the typecasting in Network.add_poisson_drive().

Can we close this @dylansdaniels, or is there still stuff left to do?

This is good to close! I'll do so now 😁


AP-1311: Move provider declaration

What
Link to story
Implement a new view and route handling for a provider declaration before they add the user data
outstanding work

[x] check wording of links on the new page
[x] clarify removal of previous declaration

Checklist
Before you ask people to review this PR:

[x] Tests and rubocop should be passing: bundle exec rake
[ ] Github should not be reporting conflicts; you should have recently run git rebase master.
[x] There should be no unnecessary whitespace changes. These make diffs harder to read and conflicts more likely.
[x] The PR description should say what you changed and why, with a link to the JIRA story.
[x] You should have looked at the diff against master and ensured that nothing unexpected is included in your changes.
[x] You should have checked that the commit messages say why the change was made.

I cannot replicate the webhint error locally, I'll merge this and check the master build afterwards. If this still fails I'll open a ticket to fix


Support Envoy to fetch token via SDS and make token consumable by filters and clusters.

Title:
Support Envoy to fetch token via SDS and make token consumable by filters and clusters.
Description:
There are two scenarios that require Envoy to fetch and inject a dynamic token into a request.

When Envoy fetches config from a config server via ADS, if the config server requires a token to authenticate (e.g. OAuth2 token), Envoy needs to pass a token to authenticate to that config server. If a token is going to expire, Envoy should refresh token and send latest token in next ADS call.

When Envoy receives a request and forwards the request to a server where token authentication is required, Envoy needs to inject a token into the request before sending it to server. When a token is going to expire, Envoy should be able to refresh the token. If there are several different servers that have token authentication enabled, Envoy should fetch corresponding token and inject valid token into each request.

The tokens are provisioned by a token server which exposes SDS API. The token server checks resource name carried in every SDS request, and decides which token to be sent out in response. The server is responsible for rotating tokens, and is responsible for pushing refreshed token to Envoy via SDS. This follows the XDS protocol.
Proposal:

Support Envoy SDS to fetch and refresh token dynamically. We need to add a new secret type into auth.Secret to store token resource. Since SDS is working at main thread, fetching token via SDS does not affect performance at worker threads.

Support gRPC service to pass dynamic token to upstream. We need to add a new type of call credential into core.GrpcService.GoogleGrpc.CallCredentials and this new type has auth.SdsSecretConfig to fetch token.

Add a new HTTP filter to inject tokens into requests. We may need to add auth.SdsSecretConfig into listener config to fetch tokens. auth.SdsSecretConfig has a unique SDS resource name which matches a token resource in the token server. We add SDS resource name into the new filter in order to let filter pick the right token for token injection. We can also configure the filter to inject tokens into certain type of requests instead of all proxied requests. I am not sure if this is the right approach, whether a filter could access resources stored in a listener object. Any suggestions are welcomed.

@JimmyCYJ this sounds totally reasonable to me. I'll assign to you.

How does this issue relate to https://github.com/envoyproxy/envoy/issues/6639? cc @yskopets. It sounds similar, can we reconcile into a single solution that works for everyone?

I revised the proposal to include the token consumption by filter case, as described in #6639, please take a look. @htuch @mattklein123 @yskopets .

@JimmyCYJ sure, this seems like a good approach. I don't think you need to do the HTTP filter for token injection directly as part of the gRPC call credential work, but it's helpful to see how the two initiatives align. I figure that if you just do what it s needed for SDS to support gRPC call creds with #6639 in mind, then we can solve #6639 later very cleanly.

Thanks @htuch!

@JimmyCYJ Great! This will also cover our use case.

@JimmyCYJ for your last proposal,  my suggestion is not to add anything to listener config.  The new filter config (adding the token to the requests) will have auth.SdsSecretConfig.  Its filter_config code will call the new TokenSubscriber to get the token.

Hi  @JimmyCYJ, its been several months since this feature is discussed, is there any progress/plans for implementing this feature? This feature is very helpful for our case

Any development on this?


Is there any reason why "tags" doesn't support languages other than English? (Eg. Korean)

Hello.
I'm trying to use "tags" to find service/route some purpose.
I'm Korean, so my customers want to use Korean language to tags.
But tags does not support Korean language.
Is there any reason why "tags" doesn't support languages other than English? (Eg. Korean)
I want to know why. For example, whether it is a technical reason or a design issue, etc.
If it does not make dirty performance or functionality, it would be nice if Korean(2-byte languages) could also be used in "tags".
Thank you.

Hi @bd1978! This is a new feature that will be released in Kong 2.4.0, it was added by #6784. You can already test it in Kong 2.4.0-beta.2 that was released yesterday, although we don't recommend using pre-release versions in production.
As this request is already fulfilled, I'm closing this issue. If you have any troubles using this or any other Kong feature, I  suggest that you use Kong Nation to share your experience, there are several users willing to help there. Please feel free to create new issues if you find any problems.

It's a very good news.
Thank you very much~!
I'll try with new version in dev. environment.


Class property readonly? for external consumers

Suggestion
Add ability to specify that some class property is read-only for users outside the class, but it should still be writable by the code within the class.
This behaviour can be achieved with getters and setter, but: (1) it is very verbose; (2) and there is performance penalty.
class A {
  #__foo: string;

  public get foo(): string {
    return this.#__foo;
  }
}

Instead, would be nice if this behaviour could be achieved with a single line of code:
class A {
  public readonly? foo: string;
}

Note ? in readonly?. The ? could indicate a new flavor of readonly keyword, which makes the property read-only for external users, but still writable for code inside the class.
✅ Viability Checklist

My suggestion meets these guidelines:

[x] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[x] This wouldn't change the runtime behavior of existing JavaScript code
[x] This could be implemented without emitting different JS based on the types of the expressions
[x] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)
[x] This feature would agree with the rest of TypeScript's Design Goals.

⭐ Suggestion
I see there could be two implementation approaches.
Option 1: No runtime changes, only type checking
Here the compiler would emit the same JavaScript code as if the readonly? keyword was not present. The only difference would be errors in TypeScript, if somebody tries to modify the property from outside the class.
Option 2: Enforcing it
TypeScript could rewrite the property to enforce it being read-only from outside the class, but still writable from within the class.
This TypeScript code:
class A {
  public readonly? foo: string = '';
}

Would result in JavaScript like this:
class A {
  constructor() {
    this.#$$foo = '';
  }

  get foo() {
    return this.#$$foo;
  }
}

💻 Use Cases
Consider this controllable Promise class—Defer, to avoid getter/setter performance penalty and still have TypeScript's readonly annotation, one needs to cast this to any.
export class Defer<T> {
  public readonly resolve!: (data: T) => void;
  public readonly reject!: (error: any) => void;
  public readonly promise: Promise<T> = new Promise<T>((resolve, reject) => {
    (this as any).resolve = resolve;
    (this as any).reject = reject;
  });
}

With the proposed change, the code would change to
export class Defer<T> {
  public readonly? resolve!: (data: T) => void;
  public readonly? reject!: (error: any) => void;
  public readonly promise: Promise<T> = new Promise<T>((resolve, reject) => {
    this.resolve = resolve;
    this.reject = reject;
  });
}

I'm like 99% sure this is a dupe but I can't seem to find the other issue now.
For the record though, option 2 (runtime enforcement) is untenable:

This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, new syntax sugar for JS, etc.)

Emitting different code based on the presence of readonly? would be type-directed emit which is something TS actively avoids doing, by design.

Duplicate of #37487.

@MartinJohns How did you find that?  I was certain that issue existed but I tried searching for various permutations of public private protected readonly and it eluded me every time. 😄

@fatcerberus I searched for writable in:title. Wasn't totally sure about what term to search for, but I knew the issue existed (I saw it before). Especially the in:title is super helpful when searching, it weeds out so many issues where the keyword is just coincidentally mentioned.

Closing it as it is a duplicate of https://github.com/microsoft/TypeScript/issues/37487


Cannot delete cluster after a user who created this cluster was removed from Keystone

Hello.

create a group with "member" and "load-balancer_member" role then I add my SSO user(Google) to this group.
create cluster with above user successfully.
remove user from above group
delete the cluster by another user (admin)

I do above steps in same project.

Result: Cluster stuck at deleting forever.
Environment:
Openstack Yoga
Magnum Cluster API 0.13.0
Cluster Management: v1.4.8
Thank you.

We have a workaround for this scenario:
https://vexxhost.github.io/magnum-cluster-api/admin/troubleshooting/#project-deleted
It would be nice to have this to get fixed automagically, but we have a workaround for now.

Oh, But my case is user perspective.

@nguyenhuukhoi What behaviour would you like to see from CAPO here?

@nguyenhuukhoi What behaviour would you like to see from CAPO here?

I will collect log and paste here

@nguyenhuukhoi What behaviour would you like to see from CAPO here?

I will collect log and paste here

It's not necessary. If CAPO has invalid credentials the logs are just going to be full of a lot of permission denied errors. There's nothing CAPO can really do about that.
I understand this is a UX issue. I'm wondering if you have any thoughts about what CAPO could have done better here?

Sr. I will back tomorrow because I cannot log in to server now.

@nguyenhuukhoi What behaviour would you like to see from CAPO here?

I will collect log and paste here

It's not necessary. If CAPO has invalid credentials the logs are just going to be full of a lot of permission denied errors. There's nothing CAPO can really do about that.
I understand this is a UX issue. I'm wondering if you have any thoughts about what CAPO could have done better here?
For example: was the problem discoverable without needing to look at the CAPO logs? What errors were visible on, e.g. the Cluster, OpenStackCluster, Machine, or OpenStackMachine objects?
Have the underlying resources actually been deleted and you're just looking for a way to get ride of the k8s objects? I asked about this one here: https://kubernetes.slack.com/archives/C8TSNPY4T/p1709728822612659

You are right, it is the permission problem.
https://paste.opendev.org/show/bopTBP94j3SvlrTbfa9V/


TECS refactor to respect vehicle limits and avoid unnecessary state

When reviewing https://github.com/PX4/ecl/pull/467 I noticed a few things in TECS.

vehicle limits weren't being respected with the load factor correction
the airspeed less mode is hard to follow because it goes through all the same integrator logic, but then ignores the result
the throttle slew rate was also only respected in non-climbout airspeed mode
it's not necessary to store the previous throttle setpoint.

@philipoe would you mind reviewing?

@dagar is this waiting for something to get in?

@dagar is this waiting for something to get in?

Testing PX4 side. I'll also rebase it to current master.

Auto created PX4/Firmware branch containing this change for testing. https://github.com/PX4/Firmware/tree/ecl_PR-468
@CarlOlsson an additional review also couldn't hurt.

@CarlOlsson an additional review also couldn't hurt.

Will do it on Monday!

@CarlOlsson and @bresch What does @dagar need to do to get this over the line?

From my side it is good to go, but I guess answering the above questions regarding the differences to master would be beneficial for users flying without airspeed sensor

@dagar Did we get some tests from the flight test team? It would be great to merge that PR now.

@dagar I don't this going to waste. Was there any further testing?

Closing this because questions wrt impact on non-airspeed users and testing remain unanswered.


[Question]: Any way to copy the knowledge base from one machine to another machine?

Describe your problem
Is there any way to copy the knowledge base of a running ragflow from one machine to another machine?

I'm afraid you need to immigrate all the system including mysql, minio and ES.

I'm afraid you need to immigrate all the system including mysql, minio and ES.

Could you please provide detailed guidance about how to immigrate all the system?
I have tried to copy all the mounted directories (including MySQL redis minio and ES, as specified in the volumes), but it doesn't work

We don't have experience about that.


fix(checkbox-input): import InputCheckbox visual style

:tada: This PR is included in version 0.11.3 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Loading website tab through manifest without loading it as iframe.

I am loading a website (that does not like being loaded in an iframe) in the tab.
I can install a website tab for a user using the graph api no problem. However I can't load the website through the manifest static/configurable tabs configuration because I get (frame-ancestors) security policy error. The website does not like being loaded in an iframe.
I still want to be install the tab through the manifest however, is there a way to side-step the iframe error this way?

There is no way to pull website as Tab in teams which is not iframable. I trying to check if any workaround is available.


Chance-based outputs in kubejs?

When making other Create recipes, I have been able to make certain outputs chance-based, for example:
event.recipes.createCrushing([
'5x geode:wrappist_shard',
Item.of('geode:wrappist_shard').withChance(0.5),
], 'geode:wrappist_cluster')
The "withChance" bit at the end allows me to make the chance of output 50%
I'm not sure if I'm just doing it wrong, but I have this script here:
event.recipes.createMechanicalExtruderExtruding(Item.of('minecraft:slime_ball').withChance(0.05),[
Fluid.of('minecraft:water'),
Fluid.of('create_things_and_misc:slime')]).withCatalyst('minecraft:slime_block')
I like the recipe, but want it to give less output because it seems way too overpowered for how much SU the extruder consumes. My first thought was to add a low chance for the output.
The recipes remains the same (giving one slimeball per bonk) no matter whether the "withChance" is there or not. If this is a problem of me not typing the script right, please tell me, but I figure this is probably just a matter of the Extruder not supporting chance-based outputs.

There's no support for chance based outputs.

I'm looking two interesting ways to solve it. I'm planing to implement both.

withChance for the output.
num of bonks required.

@4AC11  What do you think? any idea to add?
Thank!

both seems good to me @oierbravo

@oierbravo Both of those would be very helpful and would solve my issues.

Pushed withChance support. Both in the recipes and kubejs.
Work like other create blocks.

Pushed withChance support. Both in the recipes and kubejs. Work like other create blocks.

How can this implement?


Add link to github issues in figures titles

To allow direct issue opening by users

Closed by branch Issue29_LinkGithubIssuesFigureTitle,
rebased on devel on commit c612f1704107a0846038851800c8d93c24121294


Adapt to KSP2 API changes

Testing build: https://github.com/FooIbar/compose-destinations/actions/runs/9194540730
For convenience only the sample project was built.

It seems that KSP 1.0.26 fixed most KSP2 issues in our use cases.
There are still some failed tests, like the NavHostDefaultStartArgs annotation (https://github.com/google/ksp/issues/2160), but we do not use those in our project.
@raamcosta PTAL


fix: open evm send verify screen as component

The functionality is done but there are UI issues with the swap screen poppup


Rewrite prepareSheetXML to scale linearly

PR Details
Description
We don't need to backfill columns into every row for most purposes
Provided makeContiguousColumns for setting styles where we do
need it for a specific region.
Added a benchmark to monitor progress. For 50,000 rows this went
from about 11 seconds to 1 second. The improvements are more
dramatic as the row/column count increases.
Related Issue
#382
Motivation and Context
This allows writing much larger files, quickly.
How Has This Been Tested
This should be transparent but I made sure all the tests pass, added a benchmark, and
created some files to make sure they saved correctly.
Types of changes

[ ] Docs change / refactoring / dependency upgrade
[x] 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 change)

Checklist

[x] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[x] I have added tests to cover my changes.
[x] All new and existing tests passed.

Codecov Report

Merging #383 into master will increase coverage by <.01%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #383      +/-   ##
==========================================
+ Coverage   97.29%   97.29%   +<.01%
==========================================
  Files          21       21
  Lines        4212     4219       +7
==========================================
+ Hits         4098     4105       +7
  Misses         62       62
  Partials       52       52

Impacted Files
Coverage Δ

rows.go
92.22% <ø> (ø)
:arrow_up:

styles.go
100% <100%> (ø)
:arrow_up:

sheet.go
97.12% <100%> (+0.03%)
:arrow_up:

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 4e7d93a...03ed18c. Read the comment docs.


Got BLZ51901016

Hi, I fresh installed latest version(10.0.2(47213)) and try to start with WoW-Launcher. And I got BLZ51901016 when I try to login with any account.
Error came out with about 500ms - 1s pause after login is clicked.

Operating System: Microsoft Windows 10.0.19045
Backend: TrinityCore master
Is this version of client supported?
BR,
Ferdinand

我有一个类似的问题.我的客户端版本也是 47213

I solved the problem.
edit bnetserver.conf : LoginREST.ExternalAddress=<IP_ADDRESS>
<IP_ADDRESS> is my server remote IP

Problem resolved. Root cause is that the steamcommunity hooked <IP_ADDRESS>! Dammit.
If you encountered the same issue please check if you have any proxy.


Universal tag and apple-app-site-association confusion

In your docs on universal links you list an example of the "apple app site association" file with the path being:
  "paths": [
          "/uni/*"
        ]

https://sendgrid.com/docs/Classroom/Build/Add_Content/universal_links.html#-What-are-appleappsiteassociation-and-digital-asset-links-files
However, later down in the docs (Flagging Your Universal Links) you mention how you can remove the universal tag "universal=true" from links so that the link redirects to a Web Browser instead of opening the app. The connection between these two points are not clarified and if an integrator doesn't include /uni/* but /*/ in their apple app site association file, then all URLs whether a web or deep link will open the app. We saw a client struggle to get a link to open on a web browser on iOS, even though they removed the universal tag from the URL.
It would be helpful if you could:

Specify what the universal tag does, which is adding the '/uni/' parameter to the URL that is being sent through SendGrid. It only works if the apple app site association file is setup per the example.
https://sendgrid.com/docs/Classroom/Build/Add_Content/universal_links.html#-Flagging-Your-Universal-Links

Specify that integrators should input '/uni/*' into the 'paths' key of their apple app site association file. Given that your file on the docs is listed as an example, integrators are likely to put their own paths, which would cause problems down the line.

@dwillislc thanks so much for the suggestion! I've added it to our internal docs backlog.


evaluation takes a lot of time

hi
training a whisper peft model takes about 5 hours but evaluating the model and calculating wer takes about 10 hours.
does anyone know why?any help is really appreciated!
my evaluation code is like this:
from peft import PeftModel, PeftConfig
from transformers import WhisperForConditionalGeneration, Seq2SeqTrainer

peft_model_id = "****/openai-whisper-tiny-peft-fa-transcribe-colab_test"
peft_config = PeftConfig.from_pretrained(peft_model_id)
model = WhisperForConditionalGeneration.from_pretrained(
    peft_config.base_model_name_or_path, load_in_8bit=True, device_map="auto"
)
model = PeftModel.from_pretrained(model, peft_model_id)

from torch.utils.data import DataLoader
from tqdm import tqdm
import numpy as np
import gc

eval_dataloader = DataLoader(vectorized_datasets["test"], batch_size=8, collate_fn=data_collator)
forced_decoder_ids = processor.get_decoder_prompt_ids(language=language, task=task)

model.eval()
for step, batch in enumerate(tqdm(eval_dataloader)):
    with torch.cuda.amp.autocast():
        with torch.no_grad():
            generated_tokens = (
                model.generate(
                    input_features=batch["input_features"].to("cuda"),
                    forced_decoder_ids=forced_decoder_ids,
                    max_new_tokens=255,
                )
                .cpu()
                .numpy()
            )
            labels = batch["labels"].cpu().numpy()
            labels = np.where(labels != -100, labels, processor.tokenizer.pad_token_id)
            decoded_preds = processor.tokenizer.batch_decode(generated_tokens, skip_special_tokens=True)
            decoded_labels = processor.tokenizer.batch_decode(labels, skip_special_tokens=True)
            metric.add_batch(
                predictions=decoded_preds,
                references=decoded_labels,
            )
    del generated_tokens, labels, batch
    gc.collect()
wer = 100 * metric.compute()
print(f"{wer=}")

What I could think of are two things:

you are using larger batch size in training than in validation (you are using 8 in evaluation from your code)
Lora (PEFT) models tends to take longer in inference (but in theory shouldn't take longer than training) than its alternative non peft model. There is a merge_and_unload() function that combine both models and in theory speed up the process.


Add UTF-8 BOM to files written to S3/Minio

MODEXPW-508 - Add UTF-8 BOM to files written to S3/Minio
Purpose
The purpose of this change is to address issues with Excel not properly displaying Arabic characters in CSV files exported from our system. By adding a UTF-8 Byte Order Mark (BOM) to the beginning of these files, we ensure that applications like Excel correctly recognize the file encoding as UTF-8, thus displaying Arabic characters properly.
Related JIRA issue: https://issues.folio.org/browse/MODEXPW-508
Approach
To implement this change, we've modified the write method in our S3/Minio file writing utility. The approach involves:

Defining the UTF-8 BOM as a byte array at the beginning of the method.
Using a ByteArrayOutputStream to combine the BOM with the original file content.
Writing the combined byte array (BOM + original content) to S3 or Minio.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

@DerkaouiAnas , could you please fix conflicts?


WSL2: dockerd related missing kernel flags

By running https://github.com/moby/moby/blob/master/contrib/check-config.sh within wsl2, I just produced a report of missing things for running dockerd with all features enabled:
simon@simonxps:~/go/src/github.com/docker/docker/contrib$ ./check-config.sh
info: reading kernel config from /proc/config.gz ...

Generally Necessary:
- cgroup hierarchy: properly mounted [/sys/fs/cgroup]
- CONFIG_NAMESPACES: enabled
- CONFIG_NET_NS: enabled
- CONFIG_PID_NS: enabled
- CONFIG_IPC_NS: enabled
- CONFIG_UTS_NS: enabled
- CONFIG_CGROUPS: enabled
- CONFIG_CGROUP_CPUACCT: enabled
- CONFIG_CGROUP_DEVICE: enabled
- CONFIG_CGROUP_FREEZER: enabled
- CONFIG_CGROUP_SCHED: enabled
- CONFIG_CPUSETS: enabled
- CONFIG_MEMCG: enabled
- CONFIG_KEYS: enabled
- CONFIG_VETH: enabled
- CONFIG_BRIDGE: enabled
- CONFIG_BRIDGE_NETFILTER: missing
- CONFIG_NF_NAT_IPV4: enabled
- CONFIG_IP_NF_FILTER: enabled
- CONFIG_IP_NF_TARGET_MASQUERADE: enabled
- CONFIG_NETFILTER_XT_MATCH_ADDRTYPE: enabled
- CONFIG_NETFILTER_XT_MATCH_CONNTRACK: enabled
- CONFIG_NETFILTER_XT_MATCH_IPVS: missing
- CONFIG_IP_NF_NAT: enabled
- CONFIG_NF_NAT: enabled
- CONFIG_NF_NAT_NEEDED: enabled
- CONFIG_POSIX_MQUEUE: enabled

Optional Features:
- CONFIG_USER_NS: enabled
- CONFIG_SECCOMP: enabled
- CONFIG_CGROUP_PIDS: enabled
- CONFIG_MEMCG_SWAP: enabled
- CONFIG_MEMCG_SWAP_ENABLED: enabled
    (cgroup swap accounting is currently enabled)
- CONFIG_LEGACY_VSYSCALL_NONE: enabled
    (containers using eglibc <= 2.13 will not work. Switch to
     "CONFIG_VSYSCALL_[NATIVE|EMULATE]" or use "vsyscall=[native|emulate]"
     on kernel command line. Note that this will disable ASLR for the,
     VDSO which may assist in exploiting security vulnerabilities.)
- CONFIG_BLK_CGROUP: enabled
- CONFIG_BLK_DEV_THROTTLING: missing
- CONFIG_IOSCHED_CFQ: missing
- CONFIG_CFQ_GROUP_IOSCHED: missing
- CONFIG_CGROUP_PERF: enabled
- CONFIG_CGROUP_HUGETLB: enabled
- CONFIG_NET_CLS_CGROUP: missing
- CONFIG_CGROUP_NET_PRIO: missing
- CONFIG_CFS_BANDWIDTH: enabled
- CONFIG_FAIR_GROUP_SCHED: enabled
- CONFIG_RT_GROUP_SCHED: enabled
- CONFIG_IP_NF_TARGET_REDIRECT: enabled
- CONFIG_IP_VS: enabled
- CONFIG_IP_VS_NFCT: missing
- CONFIG_IP_VS_PROTO_TCP: missing
- CONFIG_IP_VS_PROTO_UDP: missing
- CONFIG_IP_VS_RR: missing
- CONFIG_EXT4_FS: enabled
- CONFIG_EXT4_FS_POSIX_ACL: enabled
- CONFIG_EXT4_FS_SECURITY: enabled
- Network Drivers:
  - "overlay":
    - CONFIG_VXLAN: missing
      Optional (for encrypted networks):
      - CONFIG_CRYPTO: enabled
      - CONFIG_CRYPTO_AEAD: enabled
      - CONFIG_CRYPTO_GCM: missing
      - CONFIG_CRYPTO_SEQIV: enabled
      - CONFIG_CRYPTO_GHASH: missing
      - CONFIG_XFRM: enabled
      - CONFIG_XFRM_USER: enabled
      - CONFIG_XFRM_ALGO: enabled
      - CONFIG_INET_ESP: missing
      - CONFIG_INET_XFRM_MODE_TRANSPORT: enabled
  - "ipvlan":
    - CONFIG_IPVLAN: enabled
  - "macvlan":
    - CONFIG_MACVLAN: enabled
    - CONFIG_DUMMY: missing
  - "ftp,tftp client in container":
    - CONFIG_NF_NAT_FTP: missing
    - CONFIG_NF_CONNTRACK_FTP: missing
    - CONFIG_NF_NAT_TFTP: missing
    - CONFIG_NF_CONNTRACK_TFTP: missing
- Storage Drivers:
  - "aufs":
    - CONFIG_AUFS_FS: missing
  - "btrfs":
    - CONFIG_BTRFS_FS: enabled
    - CONFIG_BTRFS_FS_POSIX_ACL: enabled
  - "devicemapper":
    - CONFIG_BLK_DEV_DM: enabled
    - CONFIG_DM_THIN_PROVISIONING: missing
  - "overlay":
    - CONFIG_OVERLAY_FS: enabled
  - "zfs":
    - /dev/zfs: missing
    - zfs command: missing
    - zpool command: missing

Limits:
- /proc/sys/kernel/keys/root_maxkeys: 1000000

cc @benhillis, I think it should help.
I'll try to make my own kernel with all this setup accordingly, and will do experiment to setup kubernetes in a similar way as what we do in Docker Desktop to see how things go.

I can confirm that adding missing flags makes it possible to run swarm and netwoking seems to work.
However, logs get polluted with warnings like:
time="2019-06-17T16:51:41+02:00" level=warning msg="Running modprobe nf_nat failed with message: `modprobe: ERROR: ../libkmod/libkmod.c:586 kmod_search_moddep() could not open moddep file '/lib/modules/4.19.43-microsoft-standard/modules.dep.bin'\nmodprobe: WARNING: Module nf_nat not found in directory /lib/modules/4.19.43-microsoft-standard`, error: exit status 1"

(it does also that for xt_conntrack)

Thanks @simonferquel, I will make sure all those config options get added to the kernel config.  Since the kernel that we are using for WSL2 includes modules statically instead of in a separate folder those warnings are benign.  It would likely be good to add a flag to docker daemon to suppress those errors for WSL2.

That is what I suspected.
Got a try with kubernetes, we miss CONFIG_NETFILTER_XT_MATCH_COMMENT apparently (at least). Can you add it to the list ?

@simonferquel - Yes, I will add that as well.

@simonferquel The WSL-ed Linux kernel source here https://thirdpartysource.microsoft.com/download/Windows Subsystem for Linux v2/May 2019/WSLv2-Linux-Kernel-master.zip. Found the kernel configs at WSLv2-Linux-Kernel-master\Microsoft\config-wsl.

Yep already working on it for starting prototyping Kubernetes enabled integration packs

From: Biswapriyo Nath<EMAIL_ADDRESS>Sent: Monday, June 17, 2019 8:52:29 PM
To: microsoft/WSL
Cc: Simon Ferquel; Mention
Subject: Re: [microsoft/WSL] WSL2: dockerd related missing kernel flags (#4165)
@simonferquelhttps://github.com/simonferquel The WSL-ed Linux kernel source here https://thirdpartysource.microsoft.com/download/Windows Subsystem for Linux v2/May 2019/WSLv2-Linux-Kernel-master.zip. Found the kernel configs at WSLv2-Linux-Kernel-master\Microsoft\config-wsl.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/WSL/issues/4165?email_source=notifications&email_token=AAMZQFNBVO4GG6AFSDHQH4TP27MOZA5CNFSM4HYVPCFKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODX4DSTI#issuecomment-502806861, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAMZQFLD3ZBPE53DZ45ZET3P27MOZANCNFSM4HYVPCFA.

Found the kernel configs at WSLv2-Linux-Kernel-master\Microsoft\config-wsl.

You can get that at runtime with:
$ sudo cat /proc/config.gz | gunzip -

Which is a nice touch, since we don't have /boot/config-4.19.43-microsoft-standard. [/proc/config.gz isn't really common on distros these days (including Ubuntu) because they have /boot.]

Will this issue fix the VXLAN issue?
I'am getting this when trying to use networl overlays in Docker Swarm
network sandbox join failed: subnet sandbox join failed for "<IP_ADDRESS>/16": error creating vxlan interface: operation not supported

@MortenRickiRasmussen yes. I have a built a kernel with a modified kconfig file, and I can expose ports on the ingress network, create and attach to overlay networks etc.

Related to this is that Kubernetes needs CONFIG_NETFILTER_XT_MATCH_COMMENT as the use -m comment --comment ... on iptables.

@simonferquel Can you mention which configs you have changed?

You can use the diff tool in the kernel sources script directory to look at the changes

From: Biswapriyo Nath<EMAIL_ADDRESS>Sent: Friday, June 28, 2019 5:15:25 PM
To: microsoft/WSL
Cc: Simon Ferquel; Mention
Subject: Re: [microsoft/WSL] WSL2: dockerd related missing kernel flags (#4165)
@simonferquelhttps://github.com/simonferquel Can you mention which configs you have changed?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://github.com/microsoft/WSL/issues/4165?email_source=notifications&email_token=AAMZQFLLEBYJD7FSTZA4XJTP4YTI3A5CNFSM4HYVPCFKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGODY2LM3Q#issuecomment-506771054, or mute the threadhttps://github.com/notifications/unsubscribe-auth/AAMZQFJX7Z6HRI2GA5JWR73P4YTI3ANCNFSM4HYVPCFA.

Hello,
Plese see https://github.com/weaveworks/ignite/issues/129 .
My guess is that the issue is somewhat related to CONFIG_DM_THIN_PROVISIONING  not being enabled by default.
Woud you please consider enabling it for the next release ?

@andrelop You can compile your own kernel and place it in System32\lxss\tools folder. We don't have to wait for next builds.

You can compile your own kernel and place it in System32\lxss\tools folder.

Or compile it as a module, in which case you don't need to muck lxss/tools. CONFIG_DM_THIN_PROVISIONING is =m on Real Ubuntu FWIW. Along with all the other CONFIG_DM_*.

Hello

@andrelop You can compile your own kernel and place it in System32\lxss\tools folder. We don't have to wait for next builds.

Reproducing here what I posted at https://github.com/weaveworks/ignite/issues/129 to see if you could help with the correct procedure to build/use a custom kernel for a given WSL2 VM :
I tried building a custom kernel but the WSL2 VM cannot start after I change the C:\Windows\System32\lxss\tools\kernel using the vmlinux kernel produced by the kernel build process.
What I did :

Downloaded the last release on microsoft/WSL2-Linux-Kernel github repo (https://github.com/microsoft/WSL2-Linux-Kernel/archive/v4.19.57.tar.gz)
Unpacked it and used the provided kernel config on https://github.com/microsoft/WSL2-Linux-Kernel/blob/master/Microsoft/config-wsl
Ran make pointing to this config (ie. using make KCONFIG_CONFIG=config.wsl)
At the end of the build, renamed the existing C:\Windows\System32\lxss\tools\kernel file to something else (ie. C:\Windows\System32\lxss\tools\kernel.old) and renamed/moved the vmlinux generated file as C:\Windows\System32\lxss\tools\kernel
Forced all the WSL2 VMs shutdown using wsl --shutdown on PowerShell as Administrator
Started the WSL2 VM again, but it did not boot
Restored the previously renamed file in order to get the VM booting again

Not sure what else I could try or if what I did was really what needed to be done.

@andrelop The renamed kernel that works for me is bzImage which is 7Mb in size.

@simonferquel - where's your modified config?

@PatrickLang wsl kernel config is updated with those flags. See the commit on Jul 21, 2019.

thank you guys; with the steps provided here I compiled a new kernel with the new config-wsl
now running "k3s server" on Ubuntu 18.04 inside wls2 successfully

I think this works now

May I know how to use this insider build kernel? As I am trying to run docker on surface pro X wsl2 I seems come across the issue on iptable support of the kernel as well.

May I know how to use this insider build kernel? As I am trying to run docker on surface pro X wsl2 I seems come across the issue on iptable support of the kernel as well.

You're most probably using nftables on Debian or Ubuntu.
sudo update-alternatives --set iptables /usr/sbin/iptables-legacy
sudo update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy


JaegerTracerBuilder should handle missing config more gracefully

Environment Details

Helidon Version: 1.6.1
Helidon SE
JDK version: 11
OS: OSX, Linux
Docker version (if applicable):

Problem Description
Our application dies due to some missing config key for a component we are not using.
I guess, our application could just continue if it does not use the tracer, so  the implementation should treat this situation with a warning and not throw an exception.
2019-Aug-30 13:10:34 PM [main] ERROR com.oracle.microservices.oci.internal.UncaughtExceptionHandler - Uncaught exception occurred
java.lang.IllegalArgumentException: Configuration must at least contain the 'service' key
at io.helidon.tracing.jaeger.JaegerTracerBuilder.config(JaegerTracerBuilder.java:308) ~[helidon-tracing-jaeger-1.2.0.jar:1.2.0]
at io.helidon.tracing.jaeger.JaegerTracerBuilder.config(JaegerTracerBuilder.java:151) ~[helidon-tracing-jaeger-1.2.0.jar:1.2.0]
at io.helidon.tracing.TracerBuilder.create(TracerBuilder.java:131) ~[helidon-tracing-1.2.0.jar:1.2.0]
at io.helidon.microprofile.tracing.MpTracingService.configure(MpTracingService.java:40) ~[helidon-microprofile-tracing-1.2.0.jar:1.2.0]
at io.helidon.microprofile.server.ServerImpl.lambda$loadExtensions$7(ServerImpl.java:212) ~[helidon-microprofile-server-1.2.0.jar:1.2.0]
at java.lang.Iterable.forEach(Iterable.java:75) ~[?:?]
at io.helidon.microprofile.server.ServerImpl.loadExtensions(ServerImpl.java:211) ~[helidon-microprofile-server-1.2.0.jar:1.2.0]
at io.helidon.microprofile.server.ServerImpl.(ServerImpl.java:111) ~[helidon-microprofile-server-1.2.0.jar:1.2.0]
at io.helidon.microprofile.server.Server$Builder.doBuild(Server.java:259) ~[helidon-microprofile-server-1.2.0.jar:1.2.0]
at io.helidon.common.context.Contexts.runInContext(Contexts.java:118) ~[helidon-common-context-1.2.0.jar:1.2.0]
at io.helidon.microprofile.server.Server$Builder.build(Server.java:201) ~[helidon-microprofile-server-1.2.0.jar:1.2.0]
at com.oracle.microservices.microprofile.MicroProfileServer.start(MicroProfileServer.java:48) ~[microprofile-support-1.4.1.jar:?]
at com.oracle.microservices.microprofile.MicroProfileServer.main(MicroProfileServer.java:177) ~[microprofile-support-1.4.1.jar:?]
Weld SE container bcc4bc1c-b1d2-4456-8b2c-3593957b1a90 shut down by shutdown hook

The failure is happening because you are using the component - the fact that helidon-jaeger-tracing is on your classpath means you use Jaeger tracing, and Helidon attempts to configure it.
Failure to configure it fails startup, as one of your components (that you intentionally wanted by placing it on the classpath) cannot be configured.
We could allow this if you set tracing.enabled to false - would this be helpful for you?
If you do not want to use jaeger anywhere, just remove it from your dependencies.

@tomas-langer We are using a large component (microprofile-db) that includes jaeger as one of it's components.
We just want to use the microprofile-db and cannot break it up into subcomponents or remove dependencies.
For us it would be sufficient, if there is no related config entry present, the helidon-jaeger-tracing component would assume that it is not enabled.

Hi, you have the option to exclude the io.helidon.tracing:helidon-tracing-jaeger dependency from your microprofile-db dependency.
Maybe you could ask the team responsible for microprofile-db to remove that dependency from their module?
The tracer configuration should be left to the microservice implementation (that would include jaeger, zipkin or nothing).
The reason we fail is to tell you that you have misconfigured your service and you would not get tracing. Also the tracing is not jaeger specific - the configuration does not mention jaeger at all.
You need tracing.service defined, or (if that is desired) tracing.enabled set to false
The failure is intentional and the product works as designed.