Supervisor not reloading the listener

hi, after an error occurs in the pipeline, the process becomes fully terminated and the supervisor does not restart it.

Hi @Bogdan1001 - there might be some bugs in the latest version. Do you mind sharing what you're seeing in logs?

it happened to me today.
on a long-running server (working correctly for about a week), the WalEx process suddenly stopped and hasn't restarted.
I can't see any error in the logs.
@cpursley can you help me get some hints on where to start investigating?

it seems that no logging or telemetry is working on the project. isn't it?

succeeded reproducing the situation.
investigating the solution.
``
defmodule WalEx.ErrorTest do
use ExUnit.Case, async: false
alias WalEx.Supervisor, as: WalExSupervisor
require Logger
@test_database "todos_test"
describe "error handling" do
test "error test" do
{:ok, pid} =
Postgrex.start_link(
hostname: "localhost",
username: "postgres",
password: "postgres",
database: @test_database
)
  configs_1 = get_base_configs()
  assert {:ok, pid_1} = WalExSupervisor.start_link(configs_1)

  users = """
    INSERT INTO \"user\" (email, name, age)
    VALUES
<EMAIL_ADDRESS>'Test User', 28);
  """

  Postgrex.query!(pid, users, [])
  |> tap(&Logger.debug("Inserted user: #{inspect(&1, pretty: true)}"))

  pg_replication_slots = "SELECT slot_name, slot_type, active FROM \"pg_replication_slots\";"

  assert [
           %{"active" => true, "slot_name" => slot_name, "slot_type" => "logical"}
           | _replication_slots
         ] =
           query(pid, pg_replication_slots)
           |> tap(&Logger.debug("Replication slots: #{inspect(&1, pretty: true)}"))

  :timer.sleep(3000)

  delete_users = """
    DELETE FROM "user" WHERE email =<EMAIL_ADDRESS>  """

  Postgrex.query!(pid, delete_users, [])

  :timer.sleep(3000)
end

end
def query(pid, query) do
pid
|> Postgrex.query!(query, [])
|> map_rows_to_columns()
end
def map_rows_to_columns(%Postgrex.Result{columns: columns, rows: rows}) do
Enum.map(rows, fn row -> Enum.zip(columns, row) |> Map.new() end)
end
defp get_base_configs(keys \ []) do
configs = [
name: :test_name,
hostname: "localhost",
username: "postgres",
password: "postgres",
database: @test_database,
port: 5432,
subscriptions: [:user, :todo],
publication: ["events"],
modules: [WalEx.TestModule]
]
case keys do
  [] -> configs
  _keys -> Keyword.take(configs, keys)
end

end
end
defmodule WalEx.TestModule do
use WalEx.Event, name: :test_name
require Logger
def process_all(transaction) do
Logger.error("test module error raised")
raise "test error"
end
end
``

created a PR
https://github.com/cpursley/walex/pull/28

Thanks @DohanKim ~ can you make another run through the tests. Failing for me.
I actually went ahead and merged everything to master and pushed up a few minor changes myself that you'll want to pull in.

I need to figure out a strategy for testing with a database in the CI (for now, I skip database related tests in the CI).

@DohanKim I set up CI to set up database tests.
Can you pull the recent master changes and create a new PR?
And also address this failing test:
1) test start_link/2 should start multiple supervision trees (WalEx.SupervisorTest)
     test/walex/supervisor_test.exs:19

will pull the recent master and check the test you mentioned.
thank you for the fast merge.

@cpursley seems like wee need to decide among

one global publisher
one publisher per each app name

I think the latter is better for the error resiliency.
which one do prefer?

@DohanKim I like idea of one publisher per app name. So that a single WalEx app can subscribe to multiple databases.

@DohanKim
Thoughts on how to test this? I'm trying to test when the module with event processing code is called. But does not actually seem to get called. I renamed your error test file to event_test (and plan to test the Event module in general).
https://github.com/cpursley/walex/pull/31/files#diff-a6220a12664372b9c45914e723d2a7934f7ae8052fa6ba1411c35f26de9bcc2fR75

I think manages to test that Event & Publisher are restarted correctly:
fc699c9d8a6af2fcc3cccedf404efe43f400fd21ea7c0c89ceec6d81d0d12e5dR67

I merged #31 to master and plan some other potentially breaking changes before cutting new release.

Wow, I was implementing the similar in a much slower phase trying not to break your codes but you already finished that. Thanks.
Checking if the events are received and processes are restarted looks enough for now.


Broken link in documentation

Page 8 of the documentation PDF states
for a description of all possible search options, see https://spreadsheets.google.com/pub?key=rL–
O7pyhR8FcnnG5-ofAlw.
This link does not seem to work; I've tried replacing the en-dash with a hyphen, and omitting it.  Has the file been moved or the key been revoked by Google?  Is an up-to-date link available?

@ms609 Thanks, will have a look :)

This link works for me https://spreadsheets.google.com/pub?key=rL--O7pyhR8FcnnG5-ofAlw
does it work for you @ms609

Yes, it's working for me.


🥏 [N10] Use block.timestamp instead of deprecated now

If you made a contract change, make sure to complete the checklist below before merging it in master.
Refer to our documentation for more details about contract security best practices.
Contract change checklist:

[ ] Code reviewed by 2 reviewers. See template and example.
[ ] Unit tests pass
[ ] Slither tests pass with no warning
[ ] Echidna tests pass if PR includes changes to OUSD contract (not automated, run manually on local)

Thanks @tomlinton. Though that was in the the other PR, but looks like it was not. Added


Small visual bugs

When the wire is located above some redstone components (such as comparators and repeaters), they are visually connected with it.

It doesn't make sense.

This is because wires connect to any vanilla block that says it outputs redstone. Since vanilla doesn't clarify which side the redstone is actually output from, Wired Redstone just assumes it's all sides.
What I could probably do here is add a tag like gate_redstone_connectivity that says that any blocks in it only connect on the sides, not on the top or bottom.

This looks to be fixed in the development version:

The tag name I decided to go with was wire_gate_connectable.


Failed to run build via npm

Hi,
I am getting the following error when I try to run the build after installing npm.
Note: I had to install via npm i npm@latest because the standard npm install command was also causing an error.
I am trying to run on MacOS Majave (10.14.5 (18F132)).
Regards,
Stephen.
2019-09-03T14_10_35_087Z-debug.log

Hi @hackneycrypto,
Your log indicates you are using node v8.15.0. iModel.js requires node 10.x version as listed in the Getting Started page. However, we currently only support Windows and Linux.

Mac support will be coming in future updates so stay tuned... (from #13)

OK, thanks. I will do that.


Merge upstream

Codecov Report

Merging #149 into v2-master will increase coverage by 0.17%.
The diff coverage is 61.94%.

@@              Coverage Diff              @@
##           v2-master     #149      +/-   ##
=============================================
+ Coverage      52.19%   52.36%   +0.17%
=============================================
  Files            762      772      +10
  Lines          20403    20676     +273
  Branches        3530     3578      +48
=============================================
+ Hits           10649    10828     +179
- Misses          9754     9848      +94


Fix error in example and add simpler example

As discussed in https://discourse.julialang.org/t/turing-guide-documentation-prob-examples-throws-errors/50319 the example of the use of prob"..." threw errors from at least:

model was not instantiated
some queries used s but the model used s²

In addition, it was unclear the role of the values in the instantiated model, which is now clarified with a simpler example that is easily checked against a standard normal.

thanks @rdiaz02 -- it looks like a good improvement.
FYI, the prob string macro will soon be depreciated in favour of a more intuitive and robust interface in https://github.com/TuringLang/DynamicPPL.jl/pull/438.
Related: https://beta.turing.ml/DynamicPPL.jl/dev/tutorials/prob-interface/
cc @torfjelde @devmotion @YongchaoHuang

Thank you!!! And thanks for letting me know about the new interface.


Get the actual width of xAxis through echartsInstance.

What problem does this feature solve?
When the screen is vertical and there are more Pointers, I will use dataZoom, and then use echartsInstance.on("updateAxisPointer",()=>{}) to control the dataZoom start and end, but when the actual width cannot be obtained, the offset cannot be calculated.
Kinldy, I don’t need echartsInstance.getWidth()
What does the proposed API look like?
echartsInstance.getXAxisWidth()

Currently, we may get it through the following ways, just for your reference.
echartsInstance.getModel().getComponent('xAxis').axis.getExtent()

or
echartsInstance.getModel().getComponent('xAxis').axis.grid.getRect()

After trying, it is not the actual xAxis, check here, because I used dataZoom, and 1500 points on the X axis,but the actual is 570 , which should be more than twice that of 570 according to my understanding.

Need their sum.


Multiproject from transifex to one github repo.

I have been trying to set txgh up for many projects on transifex to one github repo.
I can't find a way to to this does txgh support this?
What I find logical is setting this up in txgh.yml
txgh:
github:
repos:
yy/xx.mm
api_username: "<%= ENV['GITHUB_USERNAME'] %>"
api_token: "<%= ENV['GITHUB_TOKEN'] %>"
webhook_secret: "<%= ENV['GITHUB_WEBHOOK_SECRET'] %>"
branch: "develop"
push_source_to: "xx-project,yy-project"
transifex:
projects:
xx-project:
tx_config: "config/txxx.config"
api_username: "<%= ENV['TX_USERNAME'] %>"
api_password: "<%= ENV['TX_PASSWORD'] %>"
push_translations_to: "yy/xx.mm"
yy-project:
tx_config: "config/txyy.config"
api_username: "<%= ENV['TX_USERNAME'] %>"
api_password: "<%= ENV['TX_PASSWORD'] %>"
push_translations_to: "yy/xx.mm"

Hi @susannamaxon !  So I think the issue you are having is that you are assuming that you would need two separate tx.config files.  If you look at the multi-project tests here: https://github.com/transifex/txgh/blob/master/spec/tx_config_multi_project_spec.rb
You'll notice that resources for both projects are in a single tx.config.
Quite frankly I haven't given it much thought as to what the best approach is for this (assuming that you have the tx.configs under some sort  of source control).
It would be great to get your feedback and we could consider extending the app to be more flexible in this regard.

Thanks @matthewjackowski
Thas right, I thought I needed two tx.config.
We created our own project that use your docker image and our txgh.yml and tx.config.

Hæ @matthewjackowski
I have now a working code that transport translation from two projects in Transifex to one repo in github. But it is only pushing to one prjocet from Github to Transifex and that is the projecttwo as it is last in the txgh.yml file.
The problem is the settings for github in txgh.yml file as I have same repository that I want to push to two different projects.
What I have done is creating two configfiles as one file with two project was not working for me.
txgh.yml is like this:
txgh:
  github:
    repos:
      company/translationservice:
        api_username: "<%= ENV['GITHUB_USERNAME'] %>"
        api_token: "<%= ENV['GITHUB_TOKEN'] %>"
        push_source_to: "projectone"
        branch: "<%= ENV['GITHUB_BRANCH'] %>"
        webhook_secret: "<%= ENV['GITHUB_WEBHOOK_SECRET'] %>"
      company/translationservice:
        api_username: "<%= ENV['GITHUB_USERNAME'] %>"
        api_token: "<%= ENV['GITHUB_TOKEN'] %>"
        push_source_to: "projecttwo"
        branch: "<%= ENV['GITHUB_BRANCH'] %>"
        webhook_secret: "<%= ENV['GITHUB_WEBHOOK_SECRET'] %>"
  transifex:
    projects:
      projectone:
        tx_config: "config/txprojectone.config"
        api_username: "<%= ENV['TX_USERNAME'] %>"
        api_password: "<%= ENV['TX_PASSWORD'] %>"
        push_translations_to: "company/translationservice"
        webhook_secret: "<%= ENV['TX_WEBHOOK_SECRET'] %>"
      projecttwo:
        tx_config: "config/txprojecttwo.config"
        api_username: "<%= ENV['TX_USERNAME'] %>"
        api_password: "<%= ENV['TX_PASSWORD'] %>"
        push_translations_to: "company/translationservice"
        webhook_secret: "<%= ENV['TX_WEBHOOK_SECRET'] %>"

txprojecttwo.config:
[main]
host = https://www.transifex.com
lang_map =

# Create one such section per resource
[projecttwo.defaultjson]
file_filter = translations/projecttwo/<lang>/default.json
source_file = transifex/projecttwo/default.json
source_lang = en
type = JSON

[projecttwo.testjson]
file_filter = translations/projecttwo/<lang>/test.json
source_file = transifex/projecttwo/test.json
source_lang = en
type = JSON

txprojectone.config:
[main]
host = https://www.transifex.com
lang_map =

# Create one such section per resource

[projectone.projectonejson]
file_filter = translations/projectone/<lang>/projectone.json
source_file = transifex/projectone/projectone.json
source_lang = en
type = JSON

Interesting!  I never suspected a use case where you would want 1 github repo -> many projects, this turns Txgh into a 'broadcasting' service.  I'm not sure what the current behavior is (Txgh is pretty robust so it might pick one of them, but definitely not both as you need).
Let me look at making a test case for this, I suspect the actual code change to support this would be pretty trivial.

I should also add that you could also run multiple Txgh instances, one for each project (either separate by IP or port number).  Obviously this adds some operational overhead and management, which is less than ideal, but could be an interim solution until a code fix could be put in place.

Yes I know.
We have been discussing that, but as we are in start of our project we don't have the need right now.
I will create multiple Txgh instances when we need them.

Going different way.


Windows build from GHA doesn't work

On startup, error message shows up:
Entry Point Not Found _ZSt14_once_functor in library \pathtosmfdsp\icuuc70.dll
File is present in the folder. OS is Windows 10 Enterprise 21H2 x64.

Some ABI incompatibility with libstdc++ runtime, so it seems.
The simpler long term option would be migrating the build to windows vm with msys2.

This is fixed.

thanks


ModConf page for MMRL?

Are you willing to include a config for MMRL or not? If yes I've pre-built you something
https://github.com/Googlers-Repo/modconf-examples/tree/master/zygisk-detach
Works the same like for WebUI

i prefer not having anything i wont use and thus wont maintain


RouterExtension's back() method not honouring NavigationCancel event

I ran into something which seems to be an issue with the RouterExtensions.back() method from nativescript-angular.
Consider this playground project, where the CanDeactivate guard works fine, but in which the RouterExtensions.back() will not honour the NavigationCancel event (which results in the canGoBack() method not working properly):

Start project (note the cannot go back label on top from header component)
Tap op Guarded Route button
Tap on the Go Back button from header component
You will see underneath the confirm that the "Go Back" button has already been replaced by the  cannot go back label even before you confirm.
Tap on NO in the confirm dialog --> this cancels the navigation but the RouterExtensions.canGoBack() was already updated and now not in sync with Angular.

Which platform(s) does your issue occur on?

Both iOS & Android
Android 8 real device, iOS simulator latest

Please, provide the following version numbers that your issue occurs with:
$ tns info
✔ Getting NativeScript components versions information...
✔ Component nativescript has 4.2.3 version and is up to date.
✔ Component tns-core-modules has 4.3.0-2018-08-28-01 version and is up to date.
✔ Component tns-android has 4.2.0 version and is up to date.
✔ Component tns-ios has 4.3.0-2018-08-17-02 version and is up to date.

"dependencies": {
    "@angular/animations": "~6.1.0",
    "@angular/common": "~6.1.0",
    "@angular/compiler": "~6.1.0",
    "@angular/core": "~6.1.0",
    "@angular/forms": "~6.1.0",
    "@angular/http": "~6.1.0",
    "@angular/platform-browser": "~6.1.0",
    "@angular/platform-browser-dynamic": "~6.1.0",
    "@angular/router": "~6.1.0",
    "nativescript-angular": "~6.1.0",

Hi @abhayastudios,
Thank you for the provided sample project.
I will mark this issue as a bug, and we will investigate the problem further. I will suggest keeping track of the issue, and we will provide more info about the case.
Archive.zip

@tsonevn thanks!
I tried to dive a little into the code and from what I can understand these lines are executed regardless (or before) the NavigationCancel event. I tried to look how the vanilla Angular LocationStrategy handles it but to be honest it is a little over my head.
When I enable router tracing as below, I do see the NavigationCancel event in the console, but I would also expect the RouterExtensions tracing to show up but it didn't. Any idea how to enable those as well for additional debugging?
imports: [
    RouterModule.forRoot(routes, { enableTracing: true })
]

In any case, if you can think of a workaround until this is fixed that would be awesome.
Thanks!

Actually in my case I can just use the Angular's Location back()

Hi @abhayastudios,
We have discussed further the case with the dev team, and it seems that using the guards in the back navigation cannot be supported in NativeScript Angular.  This is caused, because the back navigation, triggered bygoBack method or via hardware back button(for Android), will trigger the native functionality for the native back and then will notify the Angular about it. We will describe this specific in the docs and will provide more info, why the guards can not be used in NativeScript Angular.

@tsonevn With today NS - is there any workaround to prevent navigation to happen on "back button" ? We have few forms in the app, user may accidentally lost all filled data :(

@kamilchlebek see this blog post for details on how to overwrite the default action for the hardware back button on Android.
Basically, you need something like
application.android.on(application.AndroidApplication.activityBackPressedEvent, (args: any) => {
    args.cancel = true;
    // the custom logic follows here
});

Thanks I'll try that. It's a pity there's no built in solution for that

Is there any Solution to prevent navigation on IOS ? Android seems to be working


[ios] Swiping a listview containing platform views has noticeable jitter on Promotion devices

After https://github.com/flutter/engine/pull/37434 landed, there is still noticeable jitter when swiping a listview containing platform views on the iPhone 13 Pro Max. However, it's very smooth on non-ProMotion devices, e.g., iPhone 8. As shown in the video below.
/cc @cyanglaz
https://user-images.githubusercontent.com/26625149/206125015-9991ea5b-a92c-4831-8abf-65a396875bb6.MP4
Confusingly, reducing the frame rate to 80 makes the swiping smoother, but reducing it to 60 is just as bad as 120.
According to the official documentation (link), the issue seems to be that the frame rate the system finally chooses is 80, but the flutter rendering pipeline is 120. ;-)

Core Animation arbitrates all the animations it presents on the screen and determines the refresh rate at any particular time.

Steps to Reproduce

git clone -b task/displaylink git@github.com:0xZOne/platform_view_performance.git
cd platform_view_performance
flutter run

Related issue: https://github.com/flutter/flutter/issues/101653

flutter doctor -v
[✓] Flutter (Channel main, 3.7.0-3.0.pre.14, on macOS 12.6 21G115 darwin-x64, locale zh-Hans-CN)
    • Flutter version 3.7.0-3.0.pre.14 on channel main at /Users/zero/fvm/versions/main
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 18534a8e4c (2 days ago), 2022-12-04 17:44:35 -0500
    • Engine revision 359a0a979a
    • Dart version 2.19.0 (build 2.19.0-444.0.dev)
    • DevTools version 2.20.0
    • Pub download mirror https://pub.flutter-io.cn
    • Flutter download mirror https://storage.flutter-io.cn

Checking Android licenses is taking an unexpectedly long time...[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
    • Android SDK at /Users/zero/Library/Android/sdk
    • Platform android-33, build-tools 33.0.1
    • ANDROID_HOME = /Users/zero/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14A400
    • CocoaPods version 1.11.3

[✓] Android Studio (version 2021.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[✓] VS Code (version 1.73.1)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.54.0

[✓] Connected device (2 available)
    • 艾尔玛的iPhone (2) (mobile) • 00008110-001A30960238401E • ios        • iOS 15.5 19F77
    • macOS (desktop)         • macos                     • darwin-x64 • macOS 12.6 21G115 darwin-x64

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!

We might need to adjust the preferredFrameRateRange of the CADisplayLink on the rendering time of the last few frames. This is something we have discussed in the past.
cc @iskakaushik @zanderso
I can work on a prototype to see if it helps. (I didn't notice the jittering when I tested on iPhone 13 pro, I might need some help testing my prototype when it is ready. :) @0xZOne

I can work on a prototype to see if it helps. (I didn't notice the jittering when I tested on iPhone 13 pro, I might need some help testing my prototype when it is ready. :) @0xZOne

Sure. Looking forward to your prototype.  :)

After a round of investigation, I found that function nextDrawable is very time-consuming.
When the swiping page is jitter, the time consumption of this function is about 5~15ms. See the below logs for details.

A CAMetalLayer object maintains an internal pool of textures for displaying layer content, each wrapped in a CAMetalDrawable object. Use this method to retrieve the next available drawable from the pool. If all drawables are in use, the layer waits up to one second for one to become available, after which it returns nil. The allowsNextDrawableTimeout property affects this behavior.

Confusingly, if the frame rate of the engine is reduced to 80hz, the time consumption of this function is negligible after the finger leaves the screen when swiping. However, after reducing to drop to 60hz, the same as at 120hz, the function will appear to be very time-consuming.
Is this an issue with the iOS operating system?  @cyanglaz
By the way, why can't iOS specify a render target type for kMTLTexture? Could you take a moment to clarify? thanks. :)

Code sample
diff --git a/shell/gpu/gpu_surface_metal_skia.mm b/shell/gpu/gpu_surface_metal_skia.mm
index d61931ce06..4971a426c0 100644
--- a/shell/gpu/gpu_surface_metal_skia.mm
+++ b/shell/gpu/gpu_surface_metal_skia.mm
@@ -118,6 +118,7 @@

 std::unique_ptr<SurfaceFrame> GPUSurfaceMetalSkia::AcquireFrameFromCAMetalLayer(
     const SkISize& frame_info) {
+  TRACE_EVENT0("flutter", "GPUSurfaceMetalSkia::AcquireFrameFromCAMetalLayer");
   auto layer = delegate_->GetCAMetalLayer(frame_info);
   if (!layer) {
     FML_LOG(ERROR) << "Invalid CAMetalLayer given by the embedder.";
@@ -126,9 +127,12 @@

   auto* mtl_layer = (CAMetalLayer*)layer;
   // Get the drawable eagerly, we will need texture object to identify target framebuffer
+  fml::TimePoint start = fml::TimePoint::Now();
   fml::scoped_nsprotocol<id<CAMetalDrawable>> drawable(
       reinterpret_cast<id<CAMetalDrawable>>([[mtl_layer nextDrawable] retain]));
-
+  double cost = (fml::TimePoint::Now() - start).ToMillisecondsF();
+  if (cost > 2)
+  FML_LOG(ERROR) << "### nextDrawable: " << cost << ((cost > 4) ? "ms, Oops ~~~~~" : "");
   if (!drawable.get()) {
     FML_LOG(ERROR) << "Could not obtain drawable from the metal layer.";
     return nullptr;

Logs
Installing and launching...                                        17.6s
Syncing files to device 艾尔玛的iPhone (2)...                           67ms

Flutter run key commands.
r Hot reload. 🔥🔥🔥
R Hot restart.
h List all available interactive commands.
d Detach (terminate "flutter run" but leave application running).
c Clear the screen
q Quit (terminate the application on the device).

💪 Running with sound null safety 💪

An Observatory debugger and profiler on 艾尔玛的iPhone (2) is available at: http://<IP_ADDRESS>:60116/2jbQAkzvHfw=/
The Flutter DevTools debugger and profiler on 艾尔玛的iPhone (2) is available at: http://<IP_ADDRESS>:9100?uri=http://<IP_ADDRESS>:60116/2jbQAkzvHfw=/
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 2.22821
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 2.89075
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 2.23504
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 2.36892
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 5.34812ms, Oops ~~~~~
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 2.68696
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 2.041
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 2.05908
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 2.19904
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 6.55092ms, Oops ~~~~~
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 6.20467ms, Oops ~~~~~
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 2.20562
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 7.17146ms, Oops ~~~~~
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 3.7095
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 6.97408ms, Oops ~~~~~
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 7.24096ms, Oops ~~~~~
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 2.924
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 7.19583ms, Oops ~~~~~
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 15.225ms, Oops ~~~~~
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 7.3255ms, Oops ~~~~~
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 6.86271ms, Oops ~~~~~
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 4.11479ms, Oops ~~~~~
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 7.6945ms, Oops ~~~~~
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 3.24825
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 7.76417ms, Oops ~~~~~
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 4.89971ms, Oops ~~~~~
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 6.28554ms, Oops ~~~~~
[VERBOSE-2:gpu_surface_metal_skia.mm(135)] ### nextDrawable: 7.70483ms, Oops ~~~~~
Application finished.

With the help of the Animation Hitches tool provided by Xcode, we notice that Vsync is unstable with jumps when a jitter occurs. This may be the root cause of the jitter in the ProMotion devices.

Taking the 11th jitter as an example( trace), the frequency of VSync changes as follows: 60Hz -> 120Hz -> 80Hz -> 120Hz -> 80Hz -> 60Hz. (At this point, the finger has left the screen, and the page is in inertial scrolling.)  It is a very puzzling behavior.

When I disable the full range of refresh rates for CADisplayLink callbacks in the demo as below:
<key>CADisableMinimumFrameDurationOnPhone</key><false/>
The frame rate of the Flutter engine is 60Hz as expected. However, there is still some noticeable jitter when swiping views.

In addition to what @0xZOne has looked:
I looked at the hitch profiler almost all the hitches during the PlatformView scrolling are type: commit to render latency: delay frame swap. I'm not entirely sure what caused this latency.

I looked at the time profiler during the frame before the hitch, I didn't see anything suspicious.

I also created an iOS app trying to mimic the PlatformView scrolling behavior and doesn't have the hitch.

Sample iOS ViewController.m code
//
//  ViewController.m
//  FlutterPlatformViewScrolling
//
//  Created by Chris Yang on 12/22/22.
//

#import "ViewController.h"

static const CGFloat ViewHeight = 100;
static const CGFloat ViewWidth = 200;
static const CGFloat ViewX = 30;
static const CGFloat Padding = 30;

@interface ViewController ()

@property (strong, nonatomic) NSMutableArray *platformViews;
@property (assign, nonatomic) CGFloat acc;
@property (strong, nonatomic) CADisplayLink *displayLink;

@end

@implementation ViewController

- (void)loadView {
  [super loadView];
  self.platformViews = [NSMutableArray new];
  self.view.backgroundColor = [UIColor grayColor];
  while(self.platformViews.count < 8) {
    [self addNewView];
  }
}

- (void)viewDidLoad {
  [super viewDidLoad];
  dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
    self.displayLink = [CADisplayLink displayLinkWithTarget:self selector:@selector(updateViews)];
    [self.displayLink addToRunLoop:[NSRunLoop currentRunLoop] forMode:NSRunLoopCommonModes];
    self.displayLink.preferredFrameRateRange =
        CAFrameRateRangeMake(60, 120, 120);
    NSRunLoop *runLoop = [NSRunLoop currentRunLoop];
    while (YES) {
      [runLoop run];
    }
  });
  // Do any additional setup after loading the view.
}

- (void)updateViews {
  dispatch_async(dispatch_get_main_queue(), ^{
    if (self.acc <= 0) {
      return;
    }
    [CATransaction begin];
    CGFloat vel = self.acc;
    UIView *viewToRemove;
    for (UIView *view in self.platformViews) {
      view.frame = CGRectMake(view.frame.origin.x, view.frame.origin.y - vel, view.frame.size.width, view.frame.size.height);
      if (view.frame.origin.y + view.frame.size.height < 0) {
        viewToRemove = view;
      }
    }
    if (viewToRemove) {
      [viewToRemove removeFromSuperview];
      [self.platformViews removeObjectAtIndex:0];
      [self addNewView];
    }
    self.acc -= 1;
    [CATransaction commit];
  });
}

- (UIView *)createPlatformView {
  UITextView *view = [[UITextView alloc] initWithFrame:CGRectMake(ViewX, 0, ViewWidth, ViewHeight)];
  view.text = @"This is a platform view";
  view.backgroundColor = [UIColor redColor];
  return view;
}

- (void)addNewView {
  UIView *newView = [self createPlatformView];
  UIView *lastView = self.platformViews.lastObject;
  CGRect frame = newView.frame;
  if (lastView) {
    frame.origin.y = lastView.frame.origin.y + ViewHeight + Padding;
  } else {
    frame.origin.y = 0;
  }
  newView.frame = frame;
  [self.view addSubview:newView];
  [self.platformViews addObject:newView];
}

- (void)touchesEnded:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
  [super touchesEnded:touches withEvent:event];
  self.acc = 50;
}

@end

It seems unreasonable that the -[CAMetalLayer nextDrawable] is so time-consuming.

It seems unreasonable that the -[CAMetalLayer nextDrawable] is so time-consuming.

nextDrawable can wait for up to 1 second according to https://developer.apple.com/documentation/quartzcore/cametallayer/2887086-allowsnextdrawabletimeout?language=objc

It seems unreasonable that the -[CAMetalLayer nextDrawable] is so time-consuming.

nextDrawable can wait for up to 1 second according to https://developer.apple.com/documentation/quartzcore/cametallayer/2887086-allowsnextdrawabletimeout?language=objc

Yes, but it's not always so time-consuming. E.g., on non-ProMotion devices.  :)

Just found out that the maskView is construction is expensive. https://github.com/flutter/engine/blob/main/shell/platform/darwin/ios/framework/Source/FlutterPlatformViews.mm#L435-L439. Removing this line helps with the performance a lot. I'm going on a vacation and will continue looking after the vacation.
If someone can figure out a way to optimize maskView's construction, it could help to reduce the jitter a lot.

I'm afraid fixing the performance issue here won't alleviate this issue.
Instead, the following question seems to be closer to the truth.
https://stackoverflow.com/questions/47451731/metal-uikit-synchronisation-with-presentswithtransaction

Edit: 9-Dec-2018: Whilst the first method described above does seem to be preferential, it does still result in frequent de-synchronisation if there is a spike in CPU usage on the main thread – which is unavoidable in most situations.
You can tell when this happens as the draw loop becomes starved of drawables. This causes a knock-on effect, which means the drawable for the next frame is delayed also. In the Metal Instruments panel, this results in a series of 'thread blocked waiting for next drawable' warnings.
With the design above, as Metal is blocked waiting for a drawable – so is the main thread. Now touch events become delayed, resulting in a distinctive stuttering pattern for a pan gesture – even though the app is still running theoretically at a full 60fps, the blocking seems to affect the cadence at which touch events are reported – resulting in the judder effect.
A subsequent CPU spike can knock things back into sequence and the app will begin performing as normal.
Edit: 10-Dec-2018: And here's a small example project that demonstrates the issue. Create a new Xcode project copy and paste the contents of the two swift files (add a new file for the metal shader file) and run on device:
https://gist.github.com/tcldr/ee7640ccd97e5d8810af4c34cf960284

I did some invesigation and debugging.
Add print log like this to know if the function nextDrawable will takes much time in IOSSurfaceMetalSkia.mm

nextDrawable takes much time in below table means: There are a lot of logs printed constantly.
Force set the presentsWithTransaction = NO

Scene
nextDrawable takes much time

Without platformView
✅

With platformView but platformView doesn't change
✅

With platformView and it will change (PlatformView in ListView and scroll ListView)
✅

Force set the presentsWithTransaction = [[NSThread currentThread] isMainThread]

Scene
nextDrawable takes much time

Without platformView
✅

With platformView but platformView doesn't change
❌

With platformView and it will change (PlatformView in ListView and scroll ListView)
✅

Force set the presentsWithTransaction = YES

Scene
nextDrawable takes much time

Without platformView
❌

With platformView but platformView doesn't change
❌

With platformView and it will change (PlatformView in ListView and scroll ListView)
✅

I removed the nextDrawable call and only let the app show PlatformView, the issue can still be seen. Example engine code without nextDrawable: https://github.com/flutter/engine/pull/38751

Yes...I tested this on your branch and also see jitter....Maybe not related with that....

Hi @cyanglaz.
I did some detailed debugging today.....and get some conclusions maybe valuable.

Without presenting metal contents, if we don't addCATransaction.... The screen is very smooth.
See patch:https://github.com/flutter/engine/compare/main...luckysmg:engine:platformView_no_present_test

Base on the patch above, if I present the metal content (Uncomment did_submit &= frame->Submit();), the jitter will reappear again.

Base on 2.  If I set metalLayer.presentsWithTransaction=false. The screen will be smooth.
But:
3.1: It will have junk randomly because it seems that when presentsWithTransaction=false the nextDrawble funtion will take much time and will have junk constantly.....
3.2: The metal contents doesn't sync with platformView a little bit(because presentsWithTransaction will sync the contents with CoreAnimation)

Seems very confusing.... I'm afraid that I m not very familiar with the mechanism of CATransaction, so maybe you could do sth according to this information. O(∩_∩)O

If it comes to the fact that as soon as a PlatformView is displayed the frame rate is limited, I would prefer an opt-in.
For example, if a user displays ads, he basically limits the whole app to 80 FPS, which is of course very unfortunate.

Apart from the jittering of PlatformView cells on list, does anyone also experience flashes of PlatformView over AppBar / SliverAppBar and SliverPersistentHeader ? Thanks!
https://user-images.githubusercontent.com/16203104/216832152-6ccacee6-1312-4baa-bdd3-cb39efd41fdd.MP4
Using the sample app on top and iPhone 13 Pro, it could be observed that there are flashes over AppBar and status bar. The flashes does not appear when Settings > Accessibility > Motion > Limit Frame Rate option is switched on.
fvm flutter doctor -v
[✓] Flutter (Channel stable, 3.7.0, on macOS 12.5.1 21G83 darwin-arm64, locale en-GB)
• Flutter version 3.7.0 on channel stable at /Users/timtang/fvm/versions/3.7.0
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision b06b8b2710 (13 days ago), 2023-01-23 16:55:55 -0800
• Engine revision b24591ed32
• Dart version 2.19.0
• DevTools version 2.20.1
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at /Users/timtang/Library/Android/sdk
• Platform android-33, build-tools 30.0.3
• Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 13F100
• CocoaPods version 1.11.2
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2021.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
[✓] IntelliJ IDEA Community Edition (version 2020.3.2)
• IntelliJ at /Applications/IntelliJ IDEA CE.app
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
[✓] VS Code (version 1.74.0)
• VS Code at /Users/timtang/Documents/worksBase/VSCode/Visual Studio Code.app/Contents
• Flutter extension can be installed from:
🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[✓] Connected device (3 available)
• iPhone (mobile) • 00008110-00094502348A801E • ios            • iOS 15.5 19F77
• macOS (desktop) • macos                     • darwin-arm64   • macOS 12.5.1 21G83 darwin-arm64
• Chrome (web)    • chrome                    • web-javascript • Google Chrome 109.0.5414.119
[✓] HTTP Host Availability
• All required HTTP hosts are available
• No issues found!

Using the latest commit from flutter:main, the flash issues is greatly improved.
However, it is found that the slivers may scroll up to status bar even if SafeArea widget is used.
https://user-images.githubusercontent.com/16203104/216857222-18ff4fb4-9fe5-4ed3-91f0-b9b61b69b899.MP4
fvm flutter doctor -v
[✓] Flutter (Channel main, 3.8.0-4.0.pre.25, on macOS 12.5.1 21G83 darwin-arm64, locale en-GB)
• Flutter version 3.8.0-4.0.pre.25 on channel main at /Users/timtang/fvm/versions/3.7.0
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision b8f5394a5c (10 hours ago), 2023-02-04 23:06:19 -0800
• Engine revision 2a104cdfcd
• Dart version 3.0.0 (build 3.0.0-204.0.dev)
• DevTools version 2.21.1
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
• Android SDK at /Users/timtang/Library/Android/sdk
• Platform android-33, build-tools 30.0.3
• Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 13.4.1)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 13F100
• CocoaPods version 1.11.2
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2021.1)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 11.0.11+0-b60-7772763)
[✓] IntelliJ IDEA Community Edition (version 2020.3.2)
• IntelliJ at /Applications/IntelliJ IDEA CE.app
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
[✓] VS Code (version 1.74.0)
• VS Code at /Users/timtang/Documents/worksBase/VSCode/Visual Studio Code.app/Contents
• Flutter extension can be installed from:
🔨 https://marketplace.visualstudio.com/items?itemName=Dart-Code.flutter
[✓] Connected device (3 available)
• iPhone (mobile) • 00008110-00094502348A801E • ios            • iOS 15.5 19F77
• macOS (desktop) • macos                     • darwin-arm64   • macOS 12.5.1 21G83 darwin-arm64
• Chrome (web)    • chrome                    • web-javascript • Google Chrome 109.0.5414.119
[✓] HTTP Host Availability
• All required HTTP hosts are available
• No issues found!

@timtangcoding  I have already filed an issue (https://github.com/flutter/flutter/issues/119485).

@timtangcoding  I have already filed an issue (https://github.com/flutter/flutter/issues/119485).

Great, let's follow up the issues there.


Update how-to-generate.md

Fix grammar/spelling. Try not to make too many mistakes myself. :)

/azp run

/azp run


[PLAT-814][WIP] Add custom subjects to Paleoarix

Purpose
Paleoarix wants to add some really cool new subjects to their Preprint provider, lets do it!
Changes

add script to add subjects

QA Notes
Check if Paleoarix has subjects  Ichnology and Taphonomy as children of Earth and Life Sciences
Documentation
None needed
Side Effects
None that I know of.
Ticket
https://openscience.atlassian.net/projects/PLAT/issues/PLAT-814

Merged as a hotfix.


cannot use foundation sites 6.2.1 with meteor 1.2.1

How can we reproduce this bug?

meteor create --release 1.2.1 foundation-test
cd foundation-test
meteor add zurb:foundation-sites
meteor

What did you expect to happen?
The application to start.
What happened instead?

=> Started proxy.
=> Meteor <IP_ADDRESS> is available. Update this project with 'meteor update'.
=> Started MongoDB.
packages/zurb_foundation-sites/test/javascript/lib/mocha.css: warn: @charset rules in this file will be ignored as UTF-8 is the only encoding supported
=> Errors prevented startup:

   While processing files with ecmascript (for target web.browser):
   vendor/jquery/src/intro.js:45: vendor/jquery/src/intro.js: Unexpected token (45:0)
   vendor/jquery/src/outro.js:2: vendor/jquery/src/outro.js: Unexpected token (2:0)

   While processing files with fourseven:scss (for target web.browser):
   /packages/zurb_foundation-sites/docs/assets/scss/docs.scss: Scss compiler error: File to import:
   {zurb:foundation-sites}/docs/assets/scss/settings/settings not found in file:
   /foundation-test/{zurb:foundation-sites}/docs/assets/scss/docs.scss

   While computing assigned variables:
   /packages/zurb_foundation-sites/vendor/jquery/src/intro.js: Unexpected token (47:1)
   /packages/zurb_foundation-sites/vendor/jquery/src/outro.js: Unexpected token (2:1)

=> Your application has errors. Waiting for file change.

This does not happen if I try it with meteor <IP_ADDRESS>.

I just upgraded to Meteor 1.3.3 with Foundation Sites 6.2.3 (latest releases at time of writing) and I'm getting the same error as described by @SierraGolf, also using same reproduction method.

Have the same problem, except for me it's only:
While computing assigned variables:     /packages/zurb_foundation-sites/vendor/jquery/src/intro.js: Unexpected token (45:0)     /packages/zurb_foundation-sites/vendor/jquery/src/outro.js: Unexpected token (2:0)
I had to downgrade Meteor to <IP_ADDRESS> to make it work.

+1

Same as @nowinskp

Same as @nowinskp on <IP_ADDRESS>

+1

+1

I downgraded meteor to <IP_ADDRESS> to get around this issue. jQuery 1.11.9 seems to be the issue and a few of the packages in meteor rely on it in version <IP_ADDRESS>. Using foundation package version 6.2.3.

It seems this is only an issue with meteor and jQuery so we have no control over this.
Also there might be new meteor versions which do not have this issue.

@ncoden can I assign this to you as you will address some Meteor related stuff?

Bump =)

Yes =) At least for a simple check that v6.5.0 will work correctly on Meteor.

We've released v6.5 for Meteor. If the issue still exists there, please let us know.


Support Vagrant for non-Docker Builds

Hi! Thanks for open sourcing this, it's a great thing.
I'm opening this issue to discuss a potential decoupling from Docker.
It's noticeable that Drone was built for cloud services, allowing clients to run under a specific container (e.g. just Ruby2.0).
What world needs is a good Jenkins replacement. It's something people would install with 1 click on any platform (I'm looking at you OSX), and be able to run the job on a host machine.
Something people would update with just go get or git pull and go install.
It's a big set of users, as currently there's no sane self-hosted CI for building iOS apps.

@bradrydzewski is there a branch pushed with that work?

@supermarin the plan has slightly shifted since Windows announced they will officially support Docker. We now need a simple solution for OSX. My plan is to create a simple server daemon that implements the Docker protocol (simple REST API) that translates those commands into something that works on OSX. It will probably be a simple chroot, but can get more sophisticated over time.
This project doesn't exist yet, but I'm happy to help kick it off.

@bradrydzewski would that still support vagrant and OSX virtualization?
The plans have slightly changed on our side too, and if it helps, one of the goals is to spawn a new VM for each build (and kill it afterwards).

[Free] VirtualBox - build-in, Parallels Desktop - Vagrant (only license product, better performance)
[Paid] VMware

@denji thank you for your response, but i'm not sure this answers the question

@supermarin yes and no.
If you need a Windows or Linux build environment you will be able to use Docker. This will let you spawn a new virtual environment for every build and kill it after.
If you need an OSX or IOS build environment we will need to provide a workaround. This workaround will need to look like Docker. Drone will think it is talking to Docker. Under the covers it will need to translate the instructions coming from Drone into something that OSX understands. I'm not sure what this will look like yet ...

@bradrydzewski I'm pretty sure you need a full virtualization.
It's legal to virtualize OSX software on Apple's hardware.

@supermarin upcoming 0.4 supports build agents. The build agent polls Drone for builds, executes and then sends the results back to the Drone server.
This means someone can write an agent for non-Docker platforms, such as OSX, with or without using virtualization: https://github.com/drone/drone/tree/0.4.0/cmd/drone-agent
The only challenge here is that Drone heavily uses Docker for things like plugins (ie deploy to Heroku, publish to S3). This means that an IOS agent would function, but may have limited functionality compared to Docker-based agents.
But it is a start ...

lightweight OS X virtualization https://github.com/mist64/xhyve

Hi @bradrydzewski, we're currently looking into using Drone behind our firewall. We're looking for a system that can run iOS builds on a dedicated Mac Mini that's sitting in our office.
The link to drone-agent you posted above is no longer working. Did build agents make it into the 0.4 release? We'd be happy to contribute a build agent that works on OS/X, but I'm not sure if that's still possible?

@marceldegraaf agents were pull from the 0.4 release since they need quite a bit more work. In the short term, have you considered running all your builds on linux machines, and for your IOS builds, you could ssh into the Mac Mini?
So your .drone.yml might look something like this:
build:
  image: unbuntu
  commands:
    - |
      ssh<EMAIL_ADDRESS><<EOF
        cd /some/place/on/mini
        git fetch origin
        git merge origin master
        ./test.sh
      EOF

I know it isn't ideal, but it at least gives you a temporary solution until w have something permanent figured out.

Hm, that's not a bad idea actually. Thanks!

Has anyone looked into https://github.com/jkingyens/docker4xcode?

It seems that native Mac OS and Windows Docker is in Beta: https://blog.docker.com/2016/03/docker-for-mac-windows-beta/

Well this won't work either, as the builds won't get executed on OSX.

The Docker engine is running in an Alpine Linux distribution on top of an xhyve Virtual Machine on Mac OS X or on a Hyper-V VM on Windows, and that VM is managed by the Docker application.

Support for other operating systems would be very helpful in certain circumstances. I'm currently looking at options to test the fsnotify Go library on multiple platforms and architectures: https://github.com/fsnotify/fsnotify/issues/136.

@nathany Drone is capable of running builds on different operating systems and architectures. There have been efforts, for example, to port Drone and all of the plugins to arm:
https://discuss.drone.io/t/drone-ported-to-arm/55
Docker is actively being ported to Windows and FreeBSD which means Drone should be able to run builds natively on Windows and FreeBSD as well. Below I'll provide some more context on what it would take to port Drone to these other architectures. This can serve as a roadmap for anyone that wants to accelerate these efforts.
FreeBSD
Drone should run on FreeBSD with little or no modification. We would just need to build all of our plugins for FreeBSD and publish to the Docker registry (similar to what was done for arm)
Windows
Drone converts build commands in the yaml file into a shell script. In order to support Windows we will need to convert these to powershell commands. We would also need to compile all of our plugins for windows and publish to the Docker registry.
Generating a powershell compliant script should not be too difficult. It should be a relatively simple change to our shell script transform function.
Multi Architecture
As I mentioned drone is capable of running linux or arm builds, but is not capable of running linux and arm builds using the same installation. This is because right now all builds are placed on the same queue and pushed to the same pool of workers.
In order to support multiple architectures or platforms in a single installation we would need to have multiple queues (one per platform). This should be a relatively simple change to the queue package
-Publish(Work) error
-Pull() Work
+Publish(platform string, work Work) error
+Pull(platform string) Work

Docker Registry Changes
Today when you run docker pull redis on linux it pulls the Docker image for linux. If you run docker pull redis on windows it pulls the Docker image for linux. This makes it difficult to use the same yaml across multiple platforms because Docker image names are currently unique to a single platform.
Luckily this is something the Docker team is working to improve:
https://github.com/docker/docker/issues/15866

FYI, compiling on FreeBSD currently, i have the following problem:
[janus@xn--kn-1ia ~/gopath/src/github.com/drone/drone] gmake build
cd drone && go build --ldflags '-extldflags "-static" -X github.com/drone/drone/version.VersionDev=' -o drone
# github.com/drone/drone/static
../static/static.go:15: undefined: Asset
../static/static.go:15: undefined: AssetDir
# github.com/drone/drone/template
../template/template.go:35: undefined: AssetDir
../template/template.go:45: undefined: MustAsset
# github.com/drone/drone/vendor/github.com/mattn/go-sqlite3
cc: warning: argument unused during compilation: '-pthread'
# github.com/drone/drone/store/datastore
../store/datastore/store.go:100: undefined: ddl.Asset
../store/datastore/store.go:101: undefined: ddl.AssetDir
Makefile:30: recipe for target 'build_static' failed
gmake: *** [build_static] Error 2

@ysangkok did you run make deps and make gen to generate the static assets? The compile errors seem to indicate these are missing and have not been generated. Second seems to be just a warning with sqlite3 but not sure that is an issue. Let's move the compiling discussion to our gitter room at https://gitter.im/drone/drone and I can help you in real time!

I also want to point mention that we are working on porting the git plugin to arm and have a docker image available. Would be great to have the same for freebsd and windows if there are any takers :)
https://github.com/drone-plugins/drone-git/blob/release/0.5-alt/Dockerfile.armhf

Good day! Are there any plans for this yet? To be able to work without docker? This issue seems unupdated for a while.

Since this was opened (about 3 years ago) the project has deeply integrated with container runtimes. Unwinding this is not trivial. So at this time there are no plans to execute builds outside of container environments, so it is probably best to close the issue.
If the scope of the project changes we can always reconsider and re-open this issue.

My 2 cents on a closed issue:
The original proposal of this discussion (integrating with Vagrant in addition to Docker) is much preferable than simply supporting host builds. Vagrant can be used to virtualize Windows and OSX (and others), and some people are building native apps targeting all of those.
[And to agree with one of the first points: the world is in need for a better Jenkins, i.e. an automation system that does not assume your target environment(s). Not saying you want to be this guy, but just in case :) ]

关注drone一年多了，依然未解决osx编译问题，真是让人失望啊。
--- translate ---
It is disappointing to notice that drone is still more than a year old and still fails to solve the OSX compiler problem.

The upcoming release will be prepared for other build environments, but the usage of plugins is still not resolved that way.

Drone supports different runtime execution environments, including support for native execution directly on the host. This includes support for Linux, Windows, macOS, BSD and more. See https://twitter.com/droneio/status/1168931431546052608


The Update URL is Not Correct

In the script the updateURL and downloadURL are set to:
https://github.com/magicoflolis/Userscript-Plus/raw/master/dist/show-site-all-userjs.user.js
That URI 404s and I think they should be set to:
https://github.com/magicoflolis/Userscript-Plus/raw/master/dist/magic-userjsplus.user.js
Possible fix would be to make a file called 'show-site-all-userjs.user.js' so that updates work, and have that file point to 'magic-userjsplus.user.js' for future updates and downloads.

Apologies for not address this sooner, I have migrated it to my own /dist/magic-userjs.gf.user.js & /dist/magic-userjs.user.js.
Note
06/08/2021
As of version 2.3.12 of the UserScript builds hosted on GitHub, they are currently broken and should not be installed for use just yet, I'm currently restructuring script assets over to this GitHub.
The UserScript hosted on GreasyFork still works and have a working Firefox and Chrome release.


readme: Add link for CDS 2024

Add link for Container Days Hamburg 2024 talk. Should we mention this talk in the DNS guide?

Should we mention this talk in the DNS guide?

Sure!


Test setup

WIP
Uses ava to run tests.
Ideally should close #4

Uses ava to run tests.

And I thought was cool writing tests in mocha :D


[v2] Autocomplete: display of multiple values in the item-after

This is a (multiple allowed):

[x] bug

[] enhancement

[ ] feature-discussion (RFC)

Framework7 Version:  2.2.0

Platform and Target: Chrome Version 65.0.3325.181

What you did
In Kitchen sink, try to add multiple values in the Autocomplete.

Actual Behavior

Because it is usual list, just add max-width: 70%; to .item-after in this list


agent: Fix indexer registration

Indexer registration was happening regardless of the indexer being detected on chain.

Will squash commits


Determine MimeType when file contents empty

When upgrading to Laravel 9, I noticed that the MimeType is no longer recognized correctly for empty file contents.
In previous versions, the MimeType was also recognized for empty files based on the file extension.

Hi @moessimple can you send this PR to the main repository please?

Hi @frankdejonge. Of Course. ;-) https://github.com/thephpleague/flysystem/pull/1489


Update crypto and json lib

Pull Request Checklist
Please confirm that you've done the following when opening a new pull request:

[x] For fixes and other improvements, please reference the GitHub issue that your change addresses.
[x] For fixes, optimizations and new features, please add an entry to the CHANGES.md file.
[x] Run mvn compile before committing, so that the auto-code formatter will format your changes consistently with the rest of the project.

This is an update to https://github.com/hap-java/HAP-Java/pull/130
Issue:
Fixes #129 #80

This doesn't work for me - I am unable to complete pairing. Discussion in #130


Fixed Bug related to active status of navigation bar

Description
While navigating through the navigation bar, if the user uses back button of the browser then the active status of previous page still persists. So we have two tabs/links active in the navigation bar and this might confuse the user as to which page he/she is currently using. To know more about it please refer issue #133 .
Fixes # (issue)
The problem was not with the code, but the package (react-bootstrap) we are using. I have changed the active status of all of them to false in order to solve this issue. To know more about the specific details, please refer Reference1 , Reference 2
Type of change

[x] Bug fix (non-breaking change which fixes an issue).

Additional Context
https://user-images.githubusercontent.com/71634100/162747440-32c0af8d-dbb1-4cec-b529-96522eb2e8cb.mp4
Checklist:

[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.

Can you update your branch? it might create conflicts in future. Otherwise, the PR is good to go.


ollama can not run the custom model (finetune on llama3) on M1 max

What is the issue?
❯ ollama run InsuranceGPT "What is your favourite condiment?"
Error: llama runner process no longer running: -1 error:check_tensor_dims: tensor 'blk.0.attn_k.weight' has wrong shape; expected  4096,  4096, got  4096,  1024,     1,     1
OS
macOS
GPU
Apple
CPU
Apple
Ollama version
No response

❯ ollama create InsuranceGPT -f Modelfile
transferring model data
creating model layer
creating template layer
using already created layer sha256:9ff789dfa477f6c77a5e6a8e4be66df28d824c18cf84e24d1b14aac2d067e950
writing layer sha256:26fc224b78fce98e2c791de92ec7687171a7b46236f34faa64227cf9c2cfa4ac
writing layer sha256:8854ff53cb2acccb83c87e946efc533a82b038d6d243caddd7ed0ba2e766ef84
writing manifest
success
❯ ollama run InsuranceGPT "What is your favourite condiment?"
Error: llama runner process no longer running: -1 error:check_tensor_dims: tensor 'blk.0.attn_k.weight' has wrong shape; expected  4096,  4096, got  4096,  1024,     1,     1

Facing same issue for code-gemma-7B gguf model
Error: llama runner process no longer running: -1 error:check_tensor_dims: tensor 'blk.0.attn_q.weight' has wrong shape; expected  3072,  3072, got  3072,  4096,     1,     1

@TobyYang7 or @Shrijeeth sorry for the slow response for the issue. Do either of you have the gguf file / modelfile that exhibits the problem? I'm guessing it's an issue w/ an improperly converted gguf file.

I'm going to go ahead and close the issue.


Remove listener after chromedp.ListenTarget?

What versions are you running?
$ go list -m github.com/chromedp/chromedp
github.com/chromedp/chromedp v0.7.3
$ google-chrome --version
Google Chrome 96.0.4664.55
$ go version
go version go1.15.15 darwin/amd64

What did you do? Include clear steps.
I'm using chromedp.ListenTarget to listen for events, and I built my binary with -race flag.
func testMethod() {
  ...
  allocContext, cancel := chromedp.NewExecAllocator(ctx, chromeOpts...)
  defer cancel()

  browserCtx, cancel := chromedp.NewContext(allocContext)
  defer cancel()

  if err := chromedp.Run(browserCtx); err != nil {
      return nil, errors.Wrap(err, "chromedp.Run() failed")
  }

  chromedp.ListenTarget(browserCtx, func(ev interface{}) {
      // proces events
  })

  ...

  return nil, nil

And when the testMethod is returned, chromedp.ListenTarget is still getting called somehow.
Is there a way to remove the listener after chromedp.ListenTarget?

Can you please read the doc carefully before asking questions?
https://github.com/chromedp/chromedp/blob/master/chromedp.go#L672-L680

Ah sorry, I didn't know it also returns a context as well.


Intermittent JS error when broadcasting transactions

I'm submitting a…

[ ] Regression (a behavior that used to work and stopped working in a new release)
[x] Bug report
[ ] Feature request
[ ] Documentation issue or request
[ ] Support request

Expected Behavior
No JS error
Current Behavior
I get a JS errors when broadcasting some transactions.  There is also a 404 to /api/tx/:txid/hex from attempting to get the TX from blockstream:
Uncaught (in promise) TypeError: Cannot read property 'length' of undefined
    at _callee2$ (walletActions.js:172)
    at tryCatch (runtime.js:45)
    at Generator.invoke [as _invoke] (runtime.js:274)
    at Generator.prototype.<computed> [as next] (runtime.js:97)
    at asyncGeneratorStep (asyncToGenerator.js:3)
    at _next (asyncToGenerator.js:25)

It seems like this happens when the transaction hex isn't quite available on blockstream at the time the async call is made.
Possible Solution
Perhaps timeout and retry?
Steps to Reproduce (for bugs)

Construct a spend and sign it
Click broadcast
Note error (sometimes)

Environment

Where are you running caravan:  localhost
Operating system: Linux
Browser and version: Chromium

[walden:~/code/caravan] 4c07fe4+ ± npm ls caravan unchained-bitcoin unchained-wallets; echo -e npm: `npm -v` \\nnode: `node -v`;  uname -a | xargs echo | cut -d " " -f 1,3-15 || sw_vers
<EMAIL_ADDRESS>/home/walden/code/caravan
├──<EMAIL_ADDRESS>└─┬<EMAIL_ADDRESS>  └──<EMAIL_ADDRESS>deduped

npm: 6.14.4
node: v12.16.2
Linux 5.9.9-arch1-1 #1 SMP PREEMPT Wed, 18 Nov 2020 19:52:04 +0000 x86_64 GNU/Linux

Resolved.


Stop sys.path manipulation in test modules.

Why closed? Was that intentional?

Ah I see it got put into Issue #15, nevermind.


$.alert is not a function

Hi !
Can you help me about jquery-confirm? In my project, I use jquery-confirm.js to show alert dialog and then go back to previous page. I call it in code behide and java-script function(alert dialog) was stored in messageBox.js file.
messageBox.js here:
function AlertMsgThenGoBackHistory(message)
{
       $.alert({
        title: 'Alert!',
        icon: 'fa fa-infomation',
        content: message,
        theme: 'white',
        confirmButton: 'Close',
           confirmButtonClass: 'btn-primary',
           cancelButtonClass: 'btn-primary',
        confirm: function(){
            window.history.go(-1);
        }
    });

};
In my aspx page, I include all libs for jquery-confirm.
In code behide,I call to AlertMsgThenGoBackHistory:
string Message = string.Format("", "Wrong data, back to previous page !");
ScriptManager.RegisterClientScriptBlock(this, GetType(), "message", Message, false);
But when I run my project, alert not show and it has an error
$.alert is not a function
Can you help me, please ???
Thanks !!!!

Hello @cuong-nm,
This can happen in 2 scenarios,

jQuery is not present in your project (enter jQuery in console to confirm it.)
$.noConflict() is done, that means  $ is not alias of jQuery.

Try if  this works.
jQuery.confirm({}) // is same as $.confirm({})

If it still doesn't work, check your browsers console and let me know the output.

I am experiencing this too, $.confirm() works, but $.alert(). throws an error. this is on the same page.

@tommwenda , i guess u have some other plugin using the $.alert name

I tried everything but it didn't work.
help me...
--- code
$.noConflict();
$.alert({
icon:'fa fa-warning',
title: 'Warning',
content: 'Not be empty',
type: 'orange',
useBootstrap: false
});
--- error
TypeError: $.alert is not a function
---- But when I use in header(wordpress) it works find.


kvstore.list endpoint

I just documented the CDDL for @stanleyjones.

This will likely work for my purposes but I find something odd about it having a different response depending on the sender. I don't think we do that anywhere else, right? It's usually that you specify what you want and, if you're not permitted, you get an error.
All of which is to say, I might prefer something like this:
; tag::list[]
kvstore.list@param = {
    ; Maximum number of keys to return
    ? 0 => uint,

    ; The order of the keys. If omitted, the order is not guaranteed.
    ? 1 => order

    ; Criteria for the returned keys. If omitted, all keys are returned.
    ? 2 => key-query,
}

kvstore.list@return = {
    ; List of keys based on query criteria
    0 => [* bstr],
}
; end::list[]

key-query = {
    ; Owner of the keys
    ? 0 => address
}

This will likely work for my purposes but I find something odd about it having a different response depending on the sender. I don't think we do that anywhere else, right? It's usually that you specify what you want and, if you're not permitted, you get an error.
All of which is to say, I might prefer something like this:
; tag::list[]
kvstore.list@param = {
    ; Maximum number of keys to return
    ? 0 => uint,

    ; The order of the keys. If omitted, the order is not guaranteed.
    ? 1 => order

    ; Criteria for the returned keys. If omitted, all keys are returned.
    ? 2 => key-query,
}

kvstore.list@return = {
    ; List of keys based on query criteria
    0 => [* bstr],
}
; end::list[]

key-query = {
    ; Owner of the keys
    ? 0 => address
}

100%!!
My PR is not meant to be a proper solution but only a small working "demoable" endpoint!


[Communication][Email] Adding check for null address in recipient fields

Description
Previously, an EmailAddress object with a null address could be used in the EmailMessage recipient fields. When sending the message, our service would throw an exception on the backend. This PR is adding SDK level validation for this to align with the .NET SDK.
All SDK Contribution checklist:

[x] The pull request does not introduce [breaking changes]
[x] CHANGELOG is updated for new features, bug fixes or other significant changes.
[x] I have read the contribution guidelines.

General Guidelines and Best Practices

[x] Title of the pull request is clear and informative.
[x] There are a small number of commits, each of which have an informative message. This means that previously merged commits do not appear in the history of the PR. For more information on cleaning up the commits in your PR, see this page.

Testing Guidelines

[ ] Pull request includes test coverage for the included changes.

API change check
API changes are not detected in this pull request.


backport deprecation removal

search: remove deprecated ElasticSearch support
search: remove deprecated OpenSearch1

I can't merge on that backport branch (anymore?) :disappointed: . Maybe @slint @ntarocco can or I can be invested with necessary permissions.

Now I can. Thanks @ntarocco .


When animating Disenchantment Dynamo, textures are distorted

The moving part of this Disenchantment Dynamo is very distorted. This dynamo was added recently.

Seems to be true for all dynamoes to varying degrees, they have animated textures now and DynDyn doesn't recognize them, causing the UVs to be wrong.


⚠ ETF has degraded performance

In d1e25ea, ETF (https://markets.hankyung.com/equity-product/etf) experienced degraded performance:

HTTP code: 200
Response time: 5263 ms

Resolved: 업종등락 performance has improved in 90fb2ac.


Adding Exit-Logging to all API calls

This adds the ability to analyze HTTP response codes and response times by the already known marker system.
Signed-off-by: Christian Bickel<EMAIL_ADDRESS>

Merged as https://github.com/openwhisk/openwhisk/commit/327b29acf4d0b6d95265bd13686e1184f939d5ee.


Can't install ext curl.

I'm having a issue trying to install curl extension.
If i try to install :
phpbrew ext install curl
I get :

Exception: Invalid package version: curl with version 'stable'.

So I try to list all known version of curl ext :
phpbrew ext known curl
But then i get another error :

PHP Warning:  file_get_contents(http://pecl.php.net/rest/r/curl/allreleases.xml): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
in phar:///usr/bin/phpbrew/src/PhpBrew/Extension/ExtensionDownloader.php on line 99

Warning: file_get_contents(http://pecl.php.net/rest/r/curl/allreleases.xml): failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found
in phar:///usr/bin/phpbrew/src/PhpBrew/Extension/ExtensionDownloader.php on line 99
PHP Warning:  array_map(): Argument #2 should be an array in phar:///usr/bin/phpbrew/src/PhpBrew/Extension/Provider/PeclProvider.php on line 103
Warning: array_map(): Argument #2 should be an array in phar:///usr/bin/phpbrew/src/PhpBrew/Extension/Provider/PeclProvider.php on line 103
The url for file_get_contents http://pecl.php.net/rest/r/curl/allreleases.xml don't exists.
So how can I install curl ?
Thanks.

Curl extension is bundled in php source, you have to install it when you're building your php.

This should be fixed, there will be a fallback downloader when installing extension.

Please reopen if this still occurs.


SphereFace

Is there someone who has complete the A-Softmax Loss(SphereFace) code with MxNet?

please refer: https://github.com/Johnson-yue/sphereface_mxnet_gluon
Also please raise questions on Discussion Forums instead of issue
Closing this issue.
Thanks
@sandeep-krishnamurthy please add Label Question, and close this issue.


🇫🇷 French translations

Here's the translations in French!
Also including a typo fix for English in home.js (Patron to Patreon). (this is not a typo, sorry!)
Please wait to have the complete translations in Storyblok to merge!

I've rebase the branch to make a single, clean commit.
All the translations are done on Storyblok, you can reviex and merge!


Centralise file path locations

Crossposting issue from old repo. https://github.com/Plootie/SIT.Manager.Avalonia/issues/21

As I'm going through the new install UI this is slowly becoming less relevant so I'll close this as I think over time it'll naturally sort itself out.


Test enforces platform annotation for @RestController APIs

https://broadworkbench.atlassian.net/browse/AJ-1562
Problem: "All APIs should be required at compile time to provide a platform annotation somehow; this will prevent unintentionally exposing APIs"
Solution: Unit test enforces all @RestControllers have platform annotations @ControlPlane and/or @DataPlane

Reminder:
PRs merged into main will not automatically generate a PR in https://github.com/broadinstitute/terra-helmfile to update the WDS image deployed to kubernetes - this action will need to be triggered manually by running the following github action: https://github.com/DataBiosphere/terra-workspace-data-service/actions/workflows/tag.yml. Dont forget to provide a Jira Id when triggering the manual action, if no Jira ID is provided the action will not fully succeed.
After you manually trigger the github action (and it completes with no errors), you must go to the terra-helmfile repo and verify that this generated a PR that merged successfully.
The terra-helmfile PR merge will then generate a PR in leonardo.  This will automerge if all tests pass, but if jenkins tests fail it will not; be sure to watch it to ensure it merges. To trigger jenkins retest simply comment on PR with "jenkins retest".

Question: do we set the env.wds.deploymentMode property for our tests? As soon as I tagged the rest controllers the tests fail with 404s

Or, if we like the @DataPlane and @ControlPlane annotations (I'm not at all attached to them now that I know about @Profile [kudos to @davidangb]), swapping out their implementation to essentially just be a shorthand for @Profile({'data-plane'}) and then adding one for the 'both' case.

I like this approach - basically, rewrite @DataPlane and @ControlPlane to be profile-driven instead of property-driven. Plus, it helps with the unit test :)


handling timezones from ics

Describe the bug
I am in EDT.  I have a calendar event that was scheduled in CDT.  So, 430pm edt is 330 pm cdt.  In the ruler, the event is showing up at 330 but should show up at 430, which is does in outlook or thunderbird
To Reproduce
create a calendar item in a different timezone from the timezone in which your system is running.  add the ics for that calendar and open the time ruler.
Expected behavior
events shown in the timezone where the user has the obsidian app opened.
Obsidian Version:

[ ] Mobile
[ x] Desktop

note: some people like to see events always in :home" timezone view while other prefer to see based on where the app is running.  you should support the "where running" and the "home timezone" would need the user to define what timezone that is.

I can definitely add a setting here for conversion. Added to roadmap.


Create statistics components for the admin panel

Description

Create a card for registered users count.
Create a card for new urls count (only from database)
Create a card for urls being stored in the cache (not registered users)

NOTE: Consider adding the monthly change.
Make sure to use Stat component from Daisyui.
Screenshots
No response
Additional information
ref: https://daisyui.com/components/stat/

Hello, I take the assignment

Hello, I take the assignment

Great!

@Haim-S Hey, are you still working on it?

Hi @origranot , can I work on this?

Hi @origranot , can I work on this?

Sure, go for it!

Hi @origranot ,
I've added the stats with the first two values. I've created backend endpoint as well to fetch those stats. But I'm not sure where to get the third value from. Can you help me out with that?

(Currently the value in the third field is hardcoded dummy value)

i want to handle this issue please assign it to me .

@Sakshi-75 We can fetch this values from the Cache service.
Let's start with the number of Registered users and etc.

Hi @origranot , are these values already being saved in the cache? Because I couldn't see them in the cache storage on inspecting.

Hi @origranot , are these values already being saved in the cache? Because I couldn't see them in the cache storage on inspecting.

As I said the urls count and etc can be fetched from the cache.
I think we should start with the number of registered users.
I think it should be done in cards. more gap between the stats.

Fixed in https://github.com/origranot/reduced.to/pull/581


Remove node status API and command

Remove legacy API for node summary and "ciao-cli node status" command that uses it along with BAT testing functionality relating to it.

Coverage increased (+0.003%) to 64.503% when pulling b4964cc62c8fd7147b0e4d446fcc15478ea57e00 on rbradford:remove-node-status into b4a2d33d7c30a4ecf0af1de4729c2125c1bfadaa on ciao-project:master.

@markdryan would be great if you could review & merge this as soon as you can so I can rebase new CLI branch and take in this.


How to implement using Swift

I'd love to see how to implement this with Swift. I'm currently getting errors that my code does not conform to the protocol even though I implemented both the numberOfPhotosInPhotoBrowser and photoBrowser functions.

Hello @ayalcinkaya ,
i'm trying to install in my project. I used Cocoa Pods to install it and paste your code to try in my project.
What I have to do now?

https://github.com/tapz/MWPhotoBrowserSwift

To use in a Swift project, import the umbrella header in your bridging header file.
#import <MWPhotoBrowser/MWPhotoBrowser-umbrella.h>

you should go to the main queue,i sloved by this method


fix: Change name for bash step in build pipeline

Description
Adding proper display name for new step in build pipeline that adds myGet source
#minor

Coverage remained the same at 51.614% when pulling ac4d6d0a14777012cb4ed3481b07e847a04698a0 on pavolum/ChangeBashName into 443d212f9a967faa636d97ffbfb1db0a30794b4d on main.


Firework CIT based on Flight Duration

Logs (line 558 onwards)
fireworksI.properties file:
type=item
items=minecraft:firework_rocket
nbt.Fireworks.Flight=1
texture=firework_rocket_i.png

The texture I was using (in case this is needed):

It's just saying that the original fireworks rocket model doesn't exist. I don't get the error on my end and it really should not even come up. Don't know why it is like that on your end. Could you try getting rid of mods until it works? One of them might be conflicting and I dont know which one.

Hmm I will try that asap then...


adding kernel build for CanMV-K230 device

Summary
Changes:

Documentation/platforms/risc-v/k230  revised for both modes
arch/risc-v/include/k230/irq.h                 add S-mode IRQs
under arch/risc-v/src/k230 folder:

Make.defs                                                 drop use of k230_exception_m.S
hardware/k230_clint.h                            add S-mode defs, revised freq
k230_head.S                                             unified flat/kernel mode support
k230_irq.c                                                 add S-mode support with debug dump
k230_mm_init.c                                        revised for K230 S-mode
k230_start.c                                              revised for flat/s-mode,
k230_timerisr.c                                         unified flat/s-mode support.

under boards/risc-v/k230/canmv230 folder:

configs/nsh/defconfig                            fix RAM size
include/board_memorymap.h              cleanup for S-mode
src/.gitignore                                            ignore generated romfs_boot.c
src/Makefile                                              add romfs support

Renames:

under boards/risc-v/k230/canmv230/src/ folder:

canmv_init.c from k230_appinit.c         making room for more k230 devices

Dropped:

under arch/risc-v/src/k230/

k230_exception_m.S                                as hybrid mode not ready yet.

New files in boards/riscv/k230/canmv230:

configs/knsh/defconfig                             S-mode config
scripts/ld-kernel.script                              S-mode linker script
src/romfs.h                                                  S-mode user space ROMFS defs
src/romfs_stub.c                                         S-mode user space ROMFS stub

Impact
None to other ports
Testing
Checked on CanMV-k230 board
Thanks
Many thanks to @lupyuen for all the help.

Hi @yf13: We need some fixes here:
Configuration/Tool: canmv230/nsh
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
  Building NuttX...
chip/k230_start.c: In function 'k230_start':
##[error]chip/k230_start.c:100:5: error: "CONFIG_BUILD_KERNEL" is not defined, evaluates to 0 [-Werror=undef]
  100 | #if CONFIG_BUILD_KERNEL
      |     ^~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[1]: *** [Makefile:145: k230_start.o] Error 1
make[1]: Target 'libarch.a' not remade because of errors.
make: *** [tools/LibTargets.mk:164: arch/risc-v/src/libarch.a] Error 2
make: Target 'all' not remade because of errors.
/github/workspace/sources/nuttx/tools/testbuild.sh: line 370: /github/workspace/sources/nuttx/../nuttx/nuttx.manifest: No such file or directory
  Normalize canmv230/nsh
====================================================================================
Configuration/Tool: canmv230/knsh
------------------------------------------------------------------------------------
  Cleaning...
  Configuring...
  Building NuttX...
##[error]chip/k230_mm_init.c:108:13: error: 'dump_pgtable' defined but not used [-Werror=unused-function]
  108 | static void dump_pgtable(const size_t * pgt, uint32_t len, const char * name)
      |             ^~~~~~~~~~~~
cc1: all warnings being treated as errors
make[1]: *** [Makefile:145: k230_mm_init.o] Error 1
In file included from common/riscv_misaligned.c:30:
common/riscv_misaligned.c: In function 'decode_insn':
##[error]common/riscv_misaligned.c:547:16: error: format '%lx' expects argument of type 'long unsigned int', but argument 3 has type 'uint32_t' {aka 'unsigned int'} [-Werror=format=]
  547 |         _alert("Uncompressed: %lx\n", insn.insn);
      |                ^~~~~~~~~~~~~~~~~~~~~  ~~~~~~~~~
      |                                           |
      |                                           uint32_t {aka unsigned int}
common/riscv_misaligned.c:547:33: note: format string is defined here
  547 |         _alert("Uncompressed: %lx\n", insn.insn);
      |                               ~~^
      |                                 |
      |                                 long unsigned int
      |                               %x
cc1: all warnings being treated as errors
make[1]: *** [Makefile:145: riscv_misaligned.o] Error 1
make[1]: Target 'libkarch.a' not remade because of errors.
make: *** [tools/LibTargets.mk:53: arch/risc-v/src/libkarch.a] Error 2
make: Target 'all' not remade because of errors.
/github/workspace/sources/nuttx/tools/testbuild.sh: line 370: /github/workspace/sources/nuttx/../nuttx/nuttx.manifest: No such file or directory
  Normalize canmv230/knsh
.config:174:warning: symbol value '' invalid for ARCH_KMAP_VBASE
22d21
< CONFIG_ARCH_LAZYFPU=y
33a33
> CONFIG_ARCH_LAZYFPU=y
47,48d46
< CONFIG_DEBUG_ASSERTIONS=y
< CONFIG_DEBUG_FULLOPT=y
60d57
< CONFIG_RAW_BINARY=y
76a74
> CONFIG_RAW_BINARY=y
Saving the new configuration file
.config:174:warning: symbol value '' invalid for ARCH_KMAP_VBASE
HEAD detached at pull/11465/merge
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git restore <file>..." to discard changes in working directory)
	modified:   boards/risc-v/k230/canmv230/configs/knsh/defconfig
no changes added to commit (use "git add" and/or "git commit -a")


Storage Tier description incorrect

In the section "Choose the appropriate storage type", there is a description of the Azure Disk and Azure Files storage types, being Premium, and Standard.
This description explains Standard as "Backed by regular spinning disks (HDDs)."
However, the defaults for disk-based StorageClasses as defined here are all SSD.
This section should specify that Azure Disk storage types can use all of Premium SSD, Standard SSD, and Standard HDD (with custom StorageClass).

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

ID: dc89d962-27d5-2ebd-4e8d-092948eb92a3
Version Independent ID: 49e054ed-b4c7-f4d7-b88f-68a0ff61035d
Content: Best practices for storage and backup - Azure Kubernetes Service
Content Source: articles/aks/operator-best-practices-storage.md
Service: container-service
GitHub Login: @zr-msft
Microsoft Alias: zarhoads

Hi @jeffwmiles,
Thanks for the feedback. We will review the content and take appropriate action.

@jeffwmiles,
Thanks for the feedback! I have assigned the issue to the content author to investigate further and update the document as appropriate.
@zr-msft - Zach, could you please review this content and see if this can updated ?

#reassign:MGoedtel

Thanks for providing feedback that helps improve our documentation. This issue has been resolved in PR - https://github.com/MicrosoftDocs/azure-docs-pr/pull/236307 and we are closing the issue. Apologies for your issue taking so long to address.
#please-close


adding-new-qa&testing-ques

Summary of changes
Added 8 new testing ques in https://github.com/freeCodeCamp/Developer_Quiz_Site/blob/main/src/data/quality-assurance-quiz.ts
Checklist

[x] I have read and followed the contribution guidelines.
[x] I have read through the Code of Conduct and agree to abide by the rules.
[x] This PR is for one of the available issues and is not a PR for an issue already assigned to someone else.
[x] My PR title has a short descriptive name so the maintainers can get an idea of what the PR is about.
[x] I have provided a summary of my changes.

closes #XXXXX

@jdwilkin4, i've made those changes.


add (x) button for deleting text in the search box

this makes it faster to delete text when the keyboard is hidden, or when the user has just finished typing something

Done


Adds middleware to insert X-Request-Start unix millis timestamp

Implements #69
Note: I never wrote a line of Go before. I based everything on the X-Request-ID middleware implementation.
PS: make test passes for me locally

@AxelTheGerman, feel free to squash the commits into one.

@AxelTheGerman, feel free to squash the commits into one.

Done!
Thanks again for the review and additional information on how everything works.

@AxelTheGerman, feel free to squash the commits into one.

Done!
Thanks again for the review and additional information on how everything works.

@AxelTheGerman, my pleasure. Thank you for your contribution! Much appreciated. :tada:
We now need to wait for one of the maintainers to do a final round of reviews, etc.


BUG: Report from community member that the chain appears to be struggling. Validators are missing blocks

What is happening?

Section description
Provide as much context as you can. Give as much context as you can to make it easier for the developers to figure what is happening.

4:01PM INF trying to deploy smart contract to EVM chain chain-reference-id=bnb-main module=x/evm smart-contract-id=6
4:01PM INF trying to deploy smart contract to EVM chain chain-reference-id=eth-main module=x/evm smart-contract-id=6
4:01PM INF trying to deploy smart contract to EVM chain chain-reference-id=gnosis-main module=x/evm smart-contract-id=6
4:01PM INF trying to deploy smart contract to EVM chain chain-reference-id=matic-main module=x/evm smart-contract-id=6
4:01PM INF trying to deploy smart contract to EVM chain chain-reference-id=op-main module=x/evm smart-contract-id=6
4:01PM INF trying to deploy smart contract to all chains module=x/evm smart-contract-id=6
4:01PM ERR no validator found for cons pub address. component=metrix.UpdateUptime module=x/metrix signed-blocks-window=10000 validator-conspub=palomavalcons1qsys7shahzl3fplvu0gzfz9tjqxqzz3e0vulsg
4:01PM ERR no validator found for cons pub address. component=metrix.UpdateUptime is-jailed=true missed-blocks-counter=32 module=x/metrix signed-blocks-window=10000 uptime=0.000000000000000000 validator=palomavaloper1d3v3jh6l2r23y9kgzdrahx0ev8ez0g8qj384sr validator-conspub=palomavalcons1pyjrnzmdh28ztnvk2fhhedstasfftcrk48cc46
4:01PM ERR no validator found for cons pub address. component=metrix.UpdateUptime is-jailed=true missed-blocks-counter=2 module=x/metrix signed-blocks-window=10000 uptime=0.000000000000000000 validator=palomavaloper10up3f4uxtsfyjkvdypag2q7vr7yxahzd7tex99 validator-conspub=palomavalcons1zpa3rkd0nr72qvwdlvv63tdddj6qpag95rgfnf
4:01PM ERR no validator found for cons pub address. component=metrix.UpdateUptime is-jailed=true missed-blocks-counter=130 module=x/metrix signed-blocks-window=10000 uptime=0.000000000000000000 validator=palomavaloper1rv786ey6j863szlkpwlrv784q6vgjm8438ysm3 validator-conspub=palomavalcons1gazwy9pdm34w8j44m3rn9vcfhtku9gp8g7y90s
4:01PM ERR no validator found for cons pub address. component=metrix.UpdateUptime is-jailed=true missed-blocks-counter=523 module=x/metrix signed-blocks-window=10000 uptime=0.000000000000000000 validator=palomavaloper1my3gpyx7sdx7wn4rd0hmng60q9jhykxhx3fwkh validator-conspub=palomavalcons1s73va6tzls4yy0rlevtx6dlehrfuf2f9j8689k
4:01PM ERR no validator found for cons pub address. component=metrix.UpdateUptime is-jailed=false missed-blocks-counter=12 module=x/metrix signed-blocks-window=10000 uptime=0.998800000000000000 validator=palomavaloper1z9fgzh7mzqgu33pdkxw0dqmqgm9l8exj6rl5wj validator-conspub=palomavalcons13lz359kh5eac03eqsuuysejkrh32622stz7jzq
4:01PM ERR no validator found for cons pub address. component=metrix.UpdateUptime is-jailed=false missed-blocks-counter=106 module=x/metrix signed-blocks-window=10000 uptime=0.989400000000000000 validator=palomavaloper1tdw23fpnxh2uk3djtteh7eaydymrfgnaepkpkz validator-conspub=palomavalcons15226stct8m5y58a7jq0qhh90ngppwud3cqvvtd
4:01PM ERR no validator found for cons pub address. component=metrix.UpdateUptime is-jailed=true missed-blocks-counter=16 module=x/metrix signed-blocks-window=10000 uptime=0.000000000000000000 validator=palomavaloper17kdfltcu45llx54ue0fvj8m4z9gd3ps4kcfsuq validator-conspub=palomavalcons1hum9a970ulpnx0lex9hlfww7gr6fjrem07sx7n
4:01PM ERR no validator found for cons pub address. component=metrix.UpdateUptime is-jailed=true missed-blocks-counter=16 module=x/metrix signed-blocks-window=10000 uptime=0.000000000000000000 validator=palomavaloper17kdfltcu45llx54ue0fvj8m4z9gd3ps4kcfsuq validator-conspub=palomavalcons1c0tfdeu6t7crenhr0qg78y2dda654raxfzzqne
4:01PM INF executed block height=14112690 module=state num_invalid_txs=0 num_valid_txs=2
4:01PM INF commit synced commit=436F6D6D697449447B5B3933203134372033302039352032353520313238203234322032333320323035203230352031303420393820383220313933203233203135352032333020313938203239203134203539203130203130352032333020393020343520313537203235352031333120313339203235332039315D3A4437353742327D module=server
4:01PM INF committed state app_hash=5D931E5FFF80F2E9CDCD686252C1179BE6C61D0E3B0A69E65A2D9DFF838BFD5B height=14112690 module=state num_txs=2
4:01PM INF Timed out dur=-289.895882 height=14112691 module=consensus round=0 step=1
4:01PM INF indexed block exents height=14112690 module=txindex

4:01PM INF trying to deploy smart contract to EVM chain chain-reference-id=bnb-main module=x/evm smart-contract-id=6
4:01PM INF trying to deploy smart contract to EVM chain chain-reference-id=eth-main module=x/evm smart-contract-id=6
4:01PM INF trying to deploy smart contract to EVM chain chain-reference-id=gnosis-main module=x/evm smart-contract-id=6
4:01PM INF trying to deploy smart contract to EVM chain chain-reference-id=matic-main module=x/evm smart-contract-id=6
4:01PM INF trying to deploy smart contract to EVM chain chain-reference-id=op-main module=x/evm smart-contract-id=6
4:01PM INF trying to deploy smart contract to all chains module=x/evm smart-contract-id=6
4:01PM ERR no validator found for cons pub address. component=metrix.UpdateUptime module=x/metrix signed-blocks-window=10000 validator-conspub=palomavalcons1qsys7shahzl3fplvu0gzfz9tjqxqzz3e0vulsg
4:01PM ERR no validator found for cons pub address. component=metrix.UpdateUptime is-jailed=true missed-blocks-counter=32 module=x/metrix signed-blocks-window=10000 uptime=0.000000000000000000 validator=palomavaloper1d3v3jh6l2r23y9kgzdrahx0ev8ez0g8qj384sr validator-conspub=palomavalcons1pyjrnzmdh28ztnvk2fhhedstasfftcrk48cc46
4:01PM ERR no validator found for cons pub address. component=metrix.UpdateUptime is-jailed=true missed-blocks-counter=2 module=x/metrix signed-blocks-window=10000 uptime=0.000000000000000000 validator=palomavaloper10up3f4uxtsfyjkvdypag2q7vr7yxahzd7tex99 validator-conspub=palomavalcons1zpa3rkd0nr72qvwdlvv63tdddj6qpag95rgfnf
4:01PM ERR no validator found for cons pub address. component=metrix.UpdateUptime is-jailed=true missed-blocks-counter=130 module=x/metrix signed-blocks-window=10000 uptime=0.000000000000000000 validator=palomavaloper1rv786ey6j863szlkpwlrv784q6vgjm8438ysm3 validator-conspub=palomavalcons1gazwy9pdm34w8j44m3rn9vcfhtku9gp8g7y90s
4:01PM ERR no validator found for cons pub address. component=metrix.UpdateUptime is-jailed=true missed-blocks-counter=523 module=x/metrix signed-blocks-window=10000 uptime=0.000000000000000000 validator=palomavaloper1my3gpyx7sdx7wn4rd0hmng60q9jhykxhx3fwkh validator-conspub=palomavalcons1s73va6tzls4yy0rlevtx6dlehrfuf2f9j8689k
4:01PM ERR no validator found for cons pub address. component=metrix.UpdateUptime is-jailed=false missed-blocks-counter=12 module=x/metrix signed-blocks-window=10000 uptime=0.998800000000000000 validator=palomavaloper1z9fgzh7mzqgu33pdkxw0dqmqgm9l8exj6rl5wj validator-conspub=palomavalcons13lz359kh5eac03eqsuuysejkrh32622stz7jzq
4:01PM ERR no validator found for cons pub address. component=metrix.UpdateUptime is-jailed=false missed-blocks-counter=106 module=x/metrix signed-blocks-window=10000 uptime=0.989400000000000000 validator=palomavaloper1tdw23fpnxh2uk3djtteh7eaydymrfgnaepkpkz validator-conspub=palomavalcons15226stct8m5y58a7jq0qhh90ngppwud3cqvvtd
4:01PM ERR no validator found for cons pub address. component=metrix.UpdateUptime is-jailed=true missed-blocks-counter=16 module=x/metrix signed-blocks-window=10000 uptime=0.000000000000000000 validator=palomavaloper17kdfltcu45llx54ue0fvj8m4z9gd3ps4kcfsuq validator-conspub=palomavalcons1hum9a970ulpnx0lex9hlfww7gr6fjrem07sx7n
4:01PM ERR no validator found for cons pub address. component=metrix.UpdateUptime is-jailed=true missed-blocks-counter=16 module=x/metrix signed-blocks-window=10000 uptime=0.000000000000000000 validator=palomavaloper17kdfltcu45llx54ue0fvj8m4z9gd3ps4kcfsuq validator-conspub=palomavalcons1c0tfdeu6t7crenhr0qg78y2dda654raxfzzqne
4:01PM INF executed block height=14112690 module=state num_invalid_txs=0 num_valid_txs=2
4:01PM INF commit synced commit=436F6D6D697449447B5B3933203134372033302039352032353520313238203234322032333320323035203230352031303420393820383220313933203233203135352032333020313938203239203134203539203130203130352032333020393020343520313537203235352031333120313339203235332039315D3A4437353742327D module=server
4:01PM INF committed state app_hash=5D931E5FFF80F2E9CDCD686252C1179BE6C61D0E3B0A69E65A2D9DFF838BFD5B height=14112690 module=state num_txs=2
4:01PM INF Timed out dur=-289.895882 height=14112691 module=consensus round=0 step=1
4:01PM INF indexed block exents height=14112690 module=txindex

@verabehr @byte-bandit Yup, VolumeFi just missed a bunch of blocks as well in the past few minutes.  I wonder this is blast issue?

I don't think this has anything to do with the BLAST integration, there was no code change to support the chain. This might have been going on for a while.
Looking at the logs, I cannot find any obvious reason. From what I can tell, validators sign and commit their blocks just fine. However, looking at the data above, the average block time was 1.15 seconds, whereas the average should be roughly 1.6s at the moment.
It's possible that this is simply too fast. A lot of the features on chain have not yet been performance optimised, so some slower machines might not be able to keep up.
That being said, I sometimes see our validator fail on blocks with only 2 transactions in them. Still, you have network overhead, IO, etc... to deal with as well, which will add a couple 100 ms already. I'm not sure how long the window stays open after a new block has been proposed, but it's possible some validators just won't make it before 2/3 consensus is reached and the window closes?
The errors observed in the logs above shouldn't affect block execution. The metrix errors are literally fire & forget without consequence, but I should fix these. The consensus ones are expected as well as messages are examined for their attestation. I don't see how they would prevent some validators from missing blocks.
The best idea I have would be to do some profiling and check what exactly is happening.

Closing to move to profiling epic.


Update v2 creation docs

Current dependencies on/for this PR:

main

PR #4974   👈

This comment was auto-generated by Graphite.


How can I implement dynamically sort through clicking field on Grid header?

Dear Volkan,
Is there any sample for reference? I want to implement dynamically sort the grid view through clicking one of fields on Grid header?
Thanks to get your advice.
Harry

the grid column is already sortable.
what do you mean by dynamically sort?

My grid "view.setItems(items, true)", the items is from customize service and not from List service, so how can I  capture the onCLick event for gird header.
Currently the onClick function in xxxGrid.ts just focus on gird data rows excluing grid header.
protected onClick(e:JQueryEventObject, row, cell): void
{
....
....
}
Thanks for your supports.
Harry

In memory grids don't support sorting.
SlickGrid has a OnSort event, and getSortColumns method. See its docs.

Thanks Volkan.
Harry


Add job_name as a staticmethod in SLURMEnvironment class

What does this PR do?
Fixes #10697, and moved the staticmethod job_id (out of the properties) for readability of the code.
Does your PR introduce any breaking changes? If yes, please list them.
None
Before submitting

[x] Was this discussed/approved via a GitHub issue? (not for typos and docs)
[x] Did you read the contributor guideline, Pull Request section?
[x] Did you make sure your PR does only one thing, instead of bundling different changes together?
[x] Did you make sure to update the documentation with your changes? (if necessary)
[ ] Did you write any new necessary tests? (not for typos and docs)
[x] Did you verify new and existing tests pass locally with your changes?
[x] Did you list all the breaking changes introduced by this pull request?
[ ] Did you update the CHANGELOG? (not for typos, docs, test updates, or internal minor changes/refactorings)

PR review
Anyone in the community is welcome to review the PR.
Before you start reviewing make sure you have read Review guidelines. In short, see the following bullet-list:

[x] Is this pull request ready for review? (if not, please submit in draft mode)
[ ] Check that all items from Before submitting are resolved
[x] Make sure the title is self-explanatory and the description concisely explains the PR
[ ] Add labels and milestones (and optionally projects) to the PR so it can be classified

Did you have fun?
Make sure you had fun coding 🙃

Should any new tests be added? And should the changelog be updated for this refactoring?

Looks great! Adding a single line here (assert None):
https://github.com/PyTorchLightning/pytorch-lightning/blob/dca1776870e9dd7236c03d7ccd55fcb09a9bb5e7/tests/plugins/environments/test_slurm_environment.py#L24
and one here with a fictional value for a job name
https://github.com/PyTorchLightning/pytorch-lightning/blob/dca1776870e9dd7236c03d7ccd55fcb09a9bb5e7/tests/plugins/environments/test_slurm_environment.py#L52
should do it.