feat(kbadge): add borderColor prop

Summary
Adds new borderColor prop to allow customizing badge border color.
I decided against adding a --KBadgeBorderColor because it seemed difficult to determine a good default without knowing more about the theme of the badge.
Screenshots

PR Checklist

[ ] Does not introduce dependencies
[ ] Functional: all changes do not break existing APIs and if so, bump major version.
[ ] Tests pass: check the output of yarn test
[ ] Naming: the files and the method and prop variables use the same naming conventions as other Kongponents
[ ] Framework style: abides by the essential rules in Vue's style guide
[ ] Cleanliness: does not have formatting issues, unused code (e.g., console.logs, debugger), or leftover comments
[ ] Docs: includes a technically accurate README, uses JSDOC where appropriate

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

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

question: Are we sure we need this? We already having theming vars for the border color of each badge type:
--KBadgeSuccessBorder
--KBadgeWarningBorder
--KBadgeInfoBorder
--KBadgeDangerBorder

question: Are we sure we need this? We already having theming vars for the border color of each badge type: --KBadgeSuccessBorder --KBadgeWarningBorder --KBadgeInfoBorder --KBadgeDangerBorder --KBadgeDefaultBorder
By default the border color is mapped to the color of the badge if is-bordered is used.

I'm wondering if it makes sense to have a single CSS variable to override the border color instead of overriding each style independently. I feel like this is simpler and then each badge even with the same appearance can be overridden with a class. Thoughts?

question: Are we sure we need this? We already having theming vars for the border color of each badge type: --KBadgeSuccessBorder --KBadgeWarningBorder --KBadgeInfoBorder --KBadgeDangerBorder --KBadgeDefaultBorder
By default the border color is mapped to the color of the badge if is-bordered is used.

@kaiarrowood the problem here is that I need to use a custom badge. Looks like we do have appearance="custom" as an option, but we have no corresponding variable, i.e. --KBadgeCustomBorder.
IMHO we should have some default options like you mentioned above to make it easy to implement the most common use cases, but we should also have the option to fully customize the appearance of the badge for cases that are less common but still required.

I'm wondering if it makes sense to have a single CSS variable to override the border color instead of overriding each style independently. I feel like this is simpler and then each badge even with the same appearance can be overridden with a class. Thoughts?

@adamdehaven would this cover the use case of having multiple appearance types on the same page like we do on our route configuration form?

For posterity, here's where we landed with this PR after some internal discussion:

Add newborder-color prop
Add new hover-color prop
Deprecate all CSS variables related to color (listed below):

--KBadgeSuccessColor
--KBadgeSuccessButtonHoverColor
--KBadgeSuccessBorder
--KBadgeSuccessBackground
--KBadgeWarningColor
--KBadgeWarningButtonHoverColor
--KBadgeWarningBorder
--KBadgeWarningBackground
--KBadgeInfoColor
--KBadgeInfoButtonHoverColor
--KBadgeInfoBorder
--KBadgeInfoBackground
--KBadgeDangerColor
--KBadgeDangerButtonHoverColor
--KBadgeDangerBorder
--KBadgeDangerBackground

@adamdehaven this is ready for another round of review


Handling microscopes at the project level

The current implementation states that microscopes should live at the dataset level on OMERO (one dataset per microscope).
TODO : try to also allow microscopes to live at the project level on OMERO (the local hierarchy implementation should remain unchanged)

Seems to be feasible
In the GUI

ask if the microscopes are living on dataset / project
if living at dataset level, select the corresponding project in the project drop-down list and select the microscope to process in its corresponding drop-down list
if living on at project level, select the microscope to process (will be the list of available project for the current log-in user) and them the dataset to process (i.e. acquisition date or something else)

In the code

It implies to add 2 methods to list datasets and projects
to load images from the selected dataset (may have a name mismatch between microscopeName and datasetName => have to figure out how to handle them differently when microscopes live at the project level)

Here is a snapshot version of the plugin, which includes reading the microscopes from the project level.
@lguerard If you want to give a try and to give feedback, feel free.
argolight_analysis_tool-1.1.0-SNAPSHOT.zip

Fixing small bugs and enabling a disconnect button
argolight_analysis_tool-1.1.0-SNAPSHOT.zip

Thanks a lot for looking into it and finding a solution @Rdornier !!!
I'll test it ASAP and let you know !

Fixed in version 1.1.0.


functional tests for APKAM in at_client/onboarding_cli

Is your feature request related to a problem? Please describe.
we currently have few functional tests in at_onboarding_cli for APKAM enrollment,auth, usage of get/put/scan etc.,
https://github.com/atsign-foundation/at_libraries/blob/apkam_onboarding_changes_squashed/tests/at_onboarding_cli_functional_tests/test/enrollment_test.dart
We need a comprehensive set of end2end tests in at_client for APKAM
Describe the solution you'd like
Tests should cover

onboarding+enrollment of first client (so the first client can approve future enrollment requests)
enrollment submission of new client
invalid OTP from new enrollment request
re-use of valid OTP more than once should be prohibited
OTPs after timeout should be invalid
enrollment approval/deny/timeout
client side functionalities after enrollment put,get, scan,llookup etc.,
enrolled client should not be able to access unauthorized namespaces

Describe alternatives you've considered
No response
Additional context
No response

Updates in PR 75:

Added two demo atsigns to virtual environment. Minor changes done in virtual env setup
https://github.com/atsign-foundation/at_server/tree/virtual_env_changes_apkam
Took up refactoring change in at_auth package
https://github.com/atsign-foundation/at_libraries/pull/461
Tested onboarding_cli tests using local virtual environment
Tests in at_client to be wrapped up in PR76.

Functional tests changes are in apkam_onboarding_changes branch. Took a task to explore appium for at_client_mobile testing.


Bug: Renaming or deleting a folder causes Files to select additional items

Description
When creating a new folder and giving it a name (and using the preview version of Files), it instead makes a folder called "New Folder", and then selects other items.
https://user-images.githubusercontent.com/28498877/214926209-4850e2c7-5f17-4221-8ff5-8246e65a0c27.mp4
This issue is more apparent in bigger directories, as there's more files and folders to select.
Steps To Reproduce

Use the preview version
Make a new folder
Try to name it
Confirm

Steps to fix

Actually name the folder
Don't select other folders / items after confirmation (maybe it's tied to the feature where you press A and you select the first file / folder that starts with A)

Files Version
<IP_ADDRESS>
Windows Version
Windows 11 22H2 22621.1105
Log file
debug.log

The naming issue has been fixed and will be included in the next update

@Josh-65 does it fix the selection issue too?

No

@Josh-65 I can't reproduce this anymore, can you check if it's still an issue?

I'm still able to on v<IP_ADDRESS>. Not sure when building from source (kinda don't want to reinstall visual studio rn.)
It's most noticeable on directories with lots of files.

That might be why, I was testing in a folder with three items.

It seems to be linked to a timing issue. When using breakpoints to debug, the issue seems to not reproductible. The selected additional items are also consistent regarding to the renamed item.
Might be linked to a fire and forget call, or an await that does not work properly.

I managed to find some strange behavior.
When I created a folder, multiple ContainerContentChanging events occurred. I found one of these events has different properties than expected.

Item and ItemContainer.Content refer to different items. Because of this, it appears to select Visual Studio 2022 with the intention of selecting ggg.
I have no idea why this would happen.

@chingucoding

After a bit of testing, I've noticed this also happens with files, meaning it's most likely tied to general item events. Updated the title to reflect this.

I managed to find a way to fix it! I will submit a PR later.

@yaira2 You should probably unpin this

Will do, thank you.


File descriptor

Hi there,
Im trying to modify a multiplatform project to adopt SCTP (including windows) and i think your project is a perfect fit. As far as i know, file descriptors actually are an integer number in comparison with windows that are a void handle. Usrsctp API is similar to sctp bsd sockets but it works with a socket struct instead of integers. What is the relation between the socket struct and file descriptors and how using this socket we will fetch the file descriptor number ? I need to dothis since all the other codebase of the project to which i am trying to use usrsctp works with FD integers, so if you can tell me how i will manage to get the fd from that socket it would be great.
Thank you

The userland stack does not provide file descriptors, just pointers to socket structures. So you have to deal with this. See the examples in programs/ how to deal with them.


404 error on home page with the 0.16 version using npx

Once switched to 0.16 version stated getting an 404 error in home page using npx:
npx json-server --watch db.json - 404 error when navigating the home page
npx<EMAIL_ADDRESS>--watch db.json - no error
my db.json
{
  "video": [
   {
      "id": "hiOjK992bPU",
      "title": "LINDEMANN - Steh auf (Official Video)",
      "views": "8812123",
      "likes": "219234",
      "dislikes": "4389"
    },
    {
      "id": "NeQM1c-XCDc",
      "title": "Rammstein - Deutschland (Official Video)",
      "views": "88123123",
      "likes": "22543345",
      "dislikes": "75123"
    }
  ]
}

same issue on windows 10 with VS Code.
I'm able to see the objects but not dashboard(home page)

Thanks for the heads-up! It should be good now.

I still have the problem of 404 on the home page, exactly as @oaydinyilmaz reported
node_modules\.bin\json-server -v
0.16.1

windows 10,
node -v
v13.7.0

@JimiSweden There is an issue if public directory already exists in your project. json-server attempts to serve index.html from there https://github.com/typicode/json-server/issues/1100#issue-578574593

I am afraid this issue still exists.
Please Note:
json-server is version 0.16.1

The same thing happened to me, I'm my case I wasn't specifying the db route which was in a folder named database,
for example:
json-server --watch db.json
should be
json-server --watch database/db.json

Daaang now i have this too ! can anybody tell me how to solve it or what to do ?


Fixes to evaluate standard error calculation to fix display issue

Closes #871.

Codecov Report

Merging #872 (6d43711) into dev (d79f29b) will decrease coverage by 0.37%.
The diff coverage is 75.00%.

@@            Coverage Diff             @@
##              dev     #872      +/-   ##
==========================================
- Coverage   85.24%   84.86%   -0.38%
==========================================
  Files          40       40
  Lines        3558     3542      -16
==========================================
- Hits         3033     3006      -27
- Misses        525      536      +11

Impacted Files
Coverage Δ

src/resampling.jl
91.89% <75.00%> (+0.47%)
:arrow_up:

src/measures/loss_functions_interface.jl
59.25% <0.00%> (-13.96%)
:arrow_down:

src/measures/continuous.jl
89.58% <0.00%> (-3.01%)
:arrow_down:

src/measures/confusion_matrix.jl
90.09% <0.00%> (-1.81%)
:arrow_down:

src/measures/probabilistic.jl
61.64% <0.00%> (-1.52%)
:arrow_down:

src/utilities.jl
83.54% <0.00%> (-1.27%)
:arrow_down:

src/machines.jl
90.04% <0.00%> (-0.42%)
:arrow_down:

src/measures/finite.jl
98.58% <0.00%> (-0.02%)
:arrow_down:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

@rikhuijzer Thank you for reviewing and improving this PR.

@rikhuijzer Thank you for reviewing and improving this PR.

Thank you for your work on MLJ :heart:


Add validation constructor to validate times

ISSUE
There is no constructor for zio.schema.validation.Validation which can validate a local time in some specified format.
SOLUTION
Using other constructors which already exist in zio.schema.validation.Validation (which include regex validation, string length checking, and numeric range checking), introduce a new constructor that satisfies the requirements of this issue.
object Validation {
  ...
  def time(format: String): Validation[String] = ???
}
...
val validation: Validation[String] = Validation.time("hh:mm:ss")

IMPACT
Increasing the number of constructors for Validation will make it far easier to use the validation package to
WHERE TO LOOK

Schema validation
LocalTime
DateTimeFormatter

PROBLEMATIC ISSUES
Issue #248 must be completed first, or at least, this issue must be based off of #244.

I pick this one up for the hackathon.

Does it need to support the same stuff as the DateTimeFormatter?
   a       am-pm-of-day                text              PM
   h       clock-hour-of-am-pm (1-12)  number            12
   K       hour-of-am-pm (0-11)        number            0
   k       clock-hour-of-am-pm (1-24)  number            0

   H       hour-of-day (0-23)          number            0
   m       minute-of-hour              number            30
   s       second-of-minute            number            55
   S       fraction-of-second          fraction          978
   A       milli-of-day                number            1234
   n       nano-of-second              number            987654321
   N       nano-of-day                 number<PHONE_NUMBER>

@tewecske Do as much as you are willing. You may be able to just piggyback atop DateTimeFormatter, rather than implementing any new parsing. However, I didn't take a close look to see if they expose the (parsed) data.

Unfortunately the parsed data only available from DateTimeFormatter.toString as string. Like Value(HourOfDay,2)':'Value(MinuteOfHour,2)':'Value(SecondOfMinute,2).


JSON Parsing Error in Terratest v0.47.1: Invalid character in boolean value

Describe the bug
After upgrading to Terratest v0.47.1, we're encountering a JSON parsing error when trying to get output using the OutputForKeys function. This error does not occur with previous versions of Terratest. The error suggests an issue with parsing boolean values in the JSON output from Terragrunt.
To Reproduce

Use Terratest v0.47.1
Run tests that use OutputForKeys to parse Terragrunt output
Observe the JSON parsing error

// This is the code that cause the issue
terraformOptions := &terraform.Options{
		TerraformDir:    config.TerraformDir,
		TerraformBinary: "terragrunt",
		Logger:          logger.Discard,
	}

outputMap := terraform.OutputForKeys(t, terraformOptions, []string{"virtual_machine_resource_group_name", "virtual_machine_name"})

This is the error that we get:
TestAzureXXX 2024-09-03T14:47:54Z retry.go:91: terragrunt [output -no-color -json virtual_machine_resource_group_name --terragrunt-non-interactive]
    output.go:19:
        	Error Trace:	/go/pkg/mod/github.com/gruntwork-io/terratest@v0.47.1/modules/terraform/output.go:19
        	            				/runner/_work/qa-azure/qa-azure/terratest/test-templates/vm_unit_test_template.go:43
        	            				/runner/_work/qa-azure/qa-azure/terratest/packages/triggers/unit.go:63
        	            				/runner/_work/qa-azure/qa-azure/terratest/unit-tests/redhat8_base_unit_test.go:9
        	Error:      	Received unexpected error:
        	            	invalid character 'i' in literal true (expecting 'r')
        	Test:       	TestAzureredhat8baseVm

Expected behavior
Terratest should successfully parse the JSON output from Terragrunt without errors, allowing the test to proceed with the parsed output.
Versions

Terratest version: v0.47.1

Seeing the same with just Output.
actualArn := terraform.Output(t, terraformOptions, "arn") gives the same error on 0.47.1, but not 0.47.0.

This issue still persists and needs to be reopened


[ExoPlayer] Changing the source.uri of a Video instance does not load new video

I have a Player component which is getting changing remote video URLs via props from it's parent.  However, the Video component instance does not seem to load the new URL.  After pausing/unpausing the player it will keep playing the old video URL. Debugging this I was not seeing a load event being fired for the new video.
This used to work with version 0.9 without the ExoPlayer (testing on Android 6.0.1).
Has somebody else experienced something similar?  Or am I missing some API that I need to call for loading a new video?
My workaround is to temporarily render undefined instead of the Video component when the video gets switched and then rendering a fresh new Video component with the new video URL.

Same for me.

I'll have a look at fixing this.

Try out that PR and see if it fixes it for you. @iou90 & @jhilden

Thanks @AndrewJack
The structure of our app actually changed in the meantime, so that we don't have one player instance with switchable sources anymore.  That's why I can't just test your fix without additional effort.  But I will see if I can still find some time for that soon.

@AndrewJack This PR works for me, thanks a lot. Tested on rn0.42;ios10.2/android_api18,23,25.

could you show me how to play video from url ?

I have 2 URLs  - URL 1 and URL 2, I want to be able to switch between the two on button press. How do I achieve it. Does anyone have a working example for this?

I have this issue too. when switching source the remain overlay is the previous video, but I can here the new video playing in BG/behind.
NB : it works as normal when the controls={false} prop is set.  I need controls to show. any tips/hints on switching source without a hack to force re-render a couple times?
thanks all.

Any solution to this?
Does not re-render new video if controls={true} on iOS.


Ready to release sdk version 0.2.9

Summary
Fix:
Resolved the typo error in useSignAndExecuteTransaction.
Remove export useWalletStore .
Enable coin, event, entryFunction e2e-test.
Optimization:
The getBalances function now includes the fixedBalance field by default, which represents the balance after precision adjustment.
Added null checks to all client methods involving addresses to prevent requests from being sent due to non-standard dapp calls.
Expanded support for various address formats (BTC object, BTC string, Rooch object, Rooch Bech32, Rooch hex) in methods such as getBalance, getBalances, transfer, transferObject, resolveBTCAddress, sessionIsExpired, and getSessionKeys.
Args object support string
Feature:
Introduced a global error guard for the provider. See example in sdk/typescript/templates/react-counter/src/ErrorGuard.tsx.
The SDK generation script now supports dynamically adding objects to the returned object.
Added the toSortStr function to all result addresses, simplifying usage for dapps by eliminating the need for custom implementations.
Update open-rpc version to rooch 0.8.1 .
SDK-KIT add useConnectionStatus .
SDK-KIT add useSession(scope: string).

Closes #issue

需要重新 rebase 一下


Fixed the issue of alerts getting overwritten by last entry.

What type of PR is this?
/kind bug fix
What this PR does / why we need it:
This PR fixes the issue of all alerts having the same name and description in the alerts table.
Which issue(s) this PR fixes:
Fixes #498
Test Report Added?:
/kind TESTED
Test Report:

Special notes for your reviewer:

@anvithks the reason this issue occurred and why this fix is required is not clear. Can you please elaborate?

@anvithks the reason this issue occurred and why this fix is required is not clear. Can you please elaborate?

I use an intermediate alert object to hold the values for a single alert that need to be displayed in our alerts table.
let alert = {
                    'alert_id' : '',
                    'alert_name' : '',
                    'severity' : '',
                    'category' : '',
                    'type' : '',
                    'sequence_number' : 0,
                    'occur_time' : 0,
                    'description' : '',
                    'resource_type' : '',
                    'location' : '',
                    'storage_id' : '',
                    'storage_name' : '',
                    'vendor' : '',
                    'model' : '',
                    'serial_number' : '',
                    'recovery_advice' : ''
                };

The response of the Alertmanager API returns alerts that are generated by two sources; Delfin and Prometheus.
Both have some minor differences in the number of parameters returned and the naming.
I iterate through this array and create an array of objects that hold the final list of alerts that we see in  our table.
As per the previous PR comment I moved the object structure to a constant file and then just assigned it to the alerts variable as below:
let alert = Consts.STORAGES.alertDataModel;

This just made a shallow copy of the object and resulted in every iteration of the loop overwriting the previous values, instead of pushing it to the array.
More info here
The alerts variable is just a temp that we use to push in to the array. I will check if there can be a better way, I think interfaces can be considered.

As you also said, this is not optimal solution so please open an Issue to track and try to get better solution


RNBottomSheetPackage is not abstract and does not override abstract method createJSModules() in ReactPackage

"react": "16.0.0-alpha.6",
"react-native": "0.44.0",
"react-native-bottomsheet": "^1.6.0",
I am Facing this issue in Android.

Hi @pankaj-ag this is related to #4 , please use 1.5.0 for now. I will make another version with backward-compatible later.

New version updated, please update your package.


Error messages on vim startup from terminal app

From my iPad, when using any terminal app I have tried, I get this when I start vim.  It starts up without messages on my Mac in any terminal.  Any ideas how to start resolving this?
Error detected while processing function Vdebug_load_options[8]..29_DefineSigns:
line    1:
E239: Invalid sign text: ▒~V▒
line    2:
E239: Invalid sign text: ▒~V▒
line    3:
E239: Invalid sign text: ▒~V~L▒~V~L
Press ENTER or type command to continue
vim --version shows the below.  But maybe it’s related to just the terminal settings?  Not sure where to start.  Any help would be appreciated.
VIM - Vi IMproved 8.2 (2019 Dec 12, compiled Dec 12 2019 16:52:17)
macOS version
Compiled by Homebrew
Huge version without GUI.  Features included (+) or not (-):
+acl               -farsi             -mouse_sysmouse    -tag_old_static
+arabic            +file_in_path      +mouse_urxvt       -tag_any_white
+autocmd           +find_in_path      +mouse_xterm       -tcl
+autochdir         +float             +multi_byte        +termguicolors
-autoservername    +folding           +multi_lang        +terminal
-balloon_eval      -footer            -mzscheme          +terminfo
+balloon_eval_term +fork()            +netbeans_intg     +termresponse
-browse            +gettext           +num64             +textobjects
++builtin_terms    -hangul_input      +packages          +textprop
+byte_offset       +iconv             +path_extra        +timers
+channel           +insert_expand     +perl              +title
+cindent           +job               +persistent_undo   -toolbar
-clientserver      +jumplist          +popupwin          +user_commands
+clipboard         +keymap            +postscript        +vartabs
+cmdline_compl     +lambda            +printer           +vertsplit
+cmdline_hist      +langmap           +profile           +virtualedit
+cmdline_info      +libcall           -python            +visual
+comments          +linebreak         +python3           +visualextra
+conceal           +lispindent        +quickfix          +viminfo
+cryptv            +listcmds          +reltime           +vreplace
+cscope            +localmap          +rightleft         +wildignore
+cursorbind        +lua               +ruby              +wildmenu
+cursorshape       +menu              +scrollbind        +windows
+dialog_con        +mksession         +signs             +writebackup
+diff              +modify_fname      +smartindent       -X11
+digraphs          +mouse             -sound             -xfontset
-dnd               -mouseshape        +spell             -xim
-ebcdic            +mouse_dec         +startuptime       -xpm
+emacs_tags        -mouse_gpm         +statusline        -xsmp
+eval              -mouse_jsbterm     -sun_workshop      -xterm_clipboard
+ex_extra          +mouse_netterm     +syntax            -xterm_save
+extra_search      +mouse_sgr         +tag_binary
system vimrc file: "$VIM/vimrc"
user vimrc file: "$HOME/.vimrc"
2nd user vimrc file: "~/.vim/vimrc"
user exrc file: "$HOME/.exrc"
defaults file: "$VIMRUNTIME/defaults.vim"
fall-back for $VIM: "/usr/local/share/vim"
Compilation: clang -c -I. -Iproto -DHAVE_CONFIG_H   -DMACOS_X -DMACOS_X_DARWIN  -g -O2 -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1
Linking: clang   -L. -fstack-protector-strong -L/usr/local/lib -L/usr/local/opt/libyaml/lib<EMAIL_ADDRESS>-L/usr/local/opt/readline/lib  -L/usr/local/lib -o vim        -lncurses -liconv -lintl -framework AppKit  -L/usr/local/opt/lua/lib -llua5.3 -mmacosx-version-min=10.15 -fstack-protector-strong -L/usr/local/lib  -L/usr/local/Cellar/perl/5.30.0/lib/perl5/5.30.0/darwin-thread-multi-2level/CORE -lperl -lm -lutil -lc  -L/usr/local/opt/python/Frameworks/Python.framework/Versions/3.7/lib/python3.7/config-3.7m-darwin -lpython3.7m -framework CoreFoundation  -lruby.2.6

Hi @jpcampbell with the MR I just opened you should be able to set g:vdebug_force_ascii = 1 in your .vimrc to see if that makes it work
it also could be the terminal app you are using uses a text encoding which does like the utf8 glyphs in the configuration

Seems to work!  Thanks.
take care,
jpc
On Tue, Aug 18, 2020 at 10:31 AM Ike Devolder<EMAIL_ADDRESS>wrote:

Hi @jpcampbell https://github.com/jpcampbell with the MR I just opened
you should be able to set g:vdebug_force_ascii = 1 in your .vimrc to see
if that makes it work
it also could be the terminal app you are using uses a text encoding which
does like the utf8 glyphs in the configuration
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/vim-vdebug/vdebug/issues/468#issuecomment-675549906,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAE5YJVUTIYTPRKMLQZZWFDSBKNDXANCNFSM4OKCZW6A
.

great, thanks


Missing SCC for Event Manager service account?

The Event Manager installation instructions (https://www.ibm.com/docs/en/noi/1.6.4?topic=openshift-preparing) state that the admin must associate an SCC with the noi-service-account, but I do not see that in the repo, only the service account itself:
https://github.com/IBM/cp4waiops-gitops/blob/main/config/3.3/event-manager/templates/noi-serviceaccount.yaml
Also note that the SA cannot be in the repo, because OCP attaches additional secrets to service accounts and then Argo and OCP start to overwrite each other's changes periodically: Argo shows the resource as out-of-sync because it has an extra secret and deletes it, then OCP adds the secret again.
Unfortunately, the only way to avoid this problem is to use a procedural approach to detect, create, and patch the service account, as needed:
https://github.com/IBM/cloudpak-gitops/blob/018986020947e8e2d09f10b390b570fb1a6b35d8/config/cloudpaks/cp4aiops/install-emgr/templates/subscriptions/030-sync-prereqs.yaml#L54

For 1, I think it is always best to follow the product documentation as closely as possible. It is hard to tell why they chose to write them in that (very different) manner and one possibility is that they tried the rolebinding and certain things did not work in the way (or order) they expected.
For 2, relying on ignoreDifferences is somewhat risky because the product has specific expectations on the contents of that field.

@nastacio I'm updating to remove the SA in repo and use the sync hook instead.

Closing as work has been done.


Moves zipkin-hbase to its own repository

zipkin-hbase integration tests regularly cause our builds to crash. This
has endangered the productivity of the project. Since this has never
been released, this burden isn't justifiable.
This change isolates hbase to its own repository, where it can either
be maintained, or be archived.
It is an acknowledged reality that this repository won't work until we
release zipkin artifacts it depends on, and perhaps perform other
modularity work.
https://github.com/openzipkin/zipkin-hbase

+1 let's move it out :-)

:+1: :+1: :+1:  looks like u got everything


how add urdf link with meshes to the world.sdf ?

Hi, I use
ubuntu 20.04
gazebo Fortress
ROS2 Humble
how add urdf link with meshes to the world.sdf ?
When I try it by creating world.sdf so:
        <model name="solo12dof_quadruped">
          <!-- Add other elements here -->
          <include>
            <!-- <uri>model://solo12dof_quadruped/urdf/solo12dof_quadruped.urdf</uri> -->
            <uri>/home/dvogureckiy99/git/Solo12/src/solo12dof_quadruped/urdf/solo12dof_quadruped.urdf</uri>
          </include>
        </model>

I have got error after this command ign gazebo world.sdf:
[Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo_12_base.STL]
[Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo_12_base.STL]
[Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo_12_base.STL]
[Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_hip_fe_fl.stl]
[Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_hip_fe_fl.stl]
[Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_hip_fe_fl.stl]
[Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_upper_leg_left_side.stl]
[Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_upper_leg_left_side.stl]
[Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_upper_leg_left_side.stl]
[Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_left_side.STL]
[Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_left_side.STL]
[Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_left_side.STL]
[Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_hip_fe_fr.stl]
[Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_hip_fe_fr.stl]
[Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_hip_fe_fr.stl]
[Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_upper_leg_right_side.stl]
[Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_upper_leg_right_side.stl]
[Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_upper_leg_right_side.stl]
[Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_right_side.STL]
[Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_right_side.STL]
[Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_right_side.STL]
[Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_hip_fe_hl.stl]
[Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_hip_fe_hl.stl]
[Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_hip_fe_hl.stl]
[Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_upper_leg_left_side.stl]
[Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_upper_leg_left_side.stl]
[Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_upper_leg_left_side.stl]
[Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_left_side.STL]
[Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_left_side.STL]
[Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_left_side.STL]
[Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_hip_fe_hr.stl]
[Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_hip_fe_hr.stl]
[Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_hip_fe_hr.stl]
[Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_upper_leg_right_side.stl]
[Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_upper_leg_right_side.stl]
[Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_upper_leg_right_side.stl]
[Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_right_side.STL]
[Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_right_side.STL]
[Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_right_side.STL]
[GUI] [Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo_12_base.STL]
[GUI] [Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo_12_base.STL]
[GUI] [Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo_12_base.STL]
[GUI] [Err] [MeshDescriptor.cc:56] Mesh manager can't find mesh named [model://solo12dof_quadruped/meshes/solo_12_base.STL]
[GUI] [Err] [OgreMeshFactory.cc:506] Cannot load null mesh
[GUI] [Err] [SceneManager.cc:394] Failed to load geometry for visual: base_link_visual
[GUI] [Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_hip_fe_fl.stl]
[GUI] [Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_hip_fe_fl.stl]
[GUI] [Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_hip_fe_fl.stl]
[GUI] [Err] [MeshDescriptor.cc:56] Mesh manager can't find mesh named [model://solo12dof_quadruped/meshes/solo12_hip_fe_fl.stl]
[GUI] [Err] [OgreMeshFactory.cc:506] Cannot load null mesh
[GUI] [Err] [SceneManager.cc:394] Failed to load geometry for visual: link_fl_hip_fe_visual
[GUI] [Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_upper_leg_left_side.stl]
[GUI] [Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_upper_leg_left_side.stl]
[GUI] [Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_upper_leg_left_side.stl]
[GUI] [Err] [MeshDescriptor.cc:56] Mesh manager can't find mesh named [model://solo12dof_quadruped/meshes/solo12_upper_leg_left_side.stl]
[GUI] [Err] [OgreMeshFactory.cc:506] Cannot load null mesh
[GUI] [Err] [SceneManager.cc:394] Failed to load geometry for visual: link_fl_ULM_visual
[GUI] [Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_left_side.STL]
[GUI] [Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_left_side.STL]
[GUI] [Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_left_side.STL]
[GUI] [Err] [MeshDescriptor.cc:56] Mesh manager can't find mesh named [model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_left_side.STL]
[GUI] [Err] [OgreMeshFactory.cc:506] Cannot load null mesh
[GUI] [Err] [SceneManager.cc:394] Failed to load geometry for visual: link_fl_LLM_visual
[GUI] [Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_hip_fe_fr.stl]
[GUI] [Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_hip_fe_fr.stl]
[GUI] [Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_hip_fe_fr.stl]
[GUI] [Err] [MeshDescriptor.cc:56] Mesh manager can't find mesh named [model://solo12dof_quadruped/meshes/solo12_hip_fe_fr.stl]
[GUI] [Err] [OgreMeshFactory.cc:506] Cannot load null mesh
[GUI] [Err] [SceneManager.cc:394] Failed to load geometry for visual: link_fr_hip_fe_visual
[GUI] [Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_upper_leg_right_side.stl]
[GUI] [Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_upper_leg_right_side.stl]
[GUI] [Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_upper_leg_right_side.stl]
[GUI] [Err] [MeshDescriptor.cc:56] Mesh manager can't find mesh named [model://solo12dof_quadruped/meshes/solo12_upper_leg_right_side.stl]
[GUI] [Err] [OgreMeshFactory.cc:506] Cannot load null mesh
[GUI] [Err] [SceneManager.cc:394] Failed to load geometry for visual: link_fr_ULM_visual
[GUI] [Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_right_side.STL]
[GUI] [Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_right_side.STL]
[GUI] [Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_right_side.STL]
[GUI] [Err] [MeshDescriptor.cc:56] Mesh manager can't find mesh named [model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_right_side.STL]
[GUI] [Err] [OgreMeshFactory.cc:506] Cannot load null mesh
[GUI] [Err] [SceneManager.cc:394] Failed to load geometry for visual: link_fr_LLM_visual
[GUI] [Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_hip_fe_hl.stl]
[GUI] [Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_hip_fe_hl.stl]
[GUI] [Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_hip_fe_hl.stl]
[GUI] [Err] [MeshDescriptor.cc:56] Mesh manager can't find mesh named [model://solo12dof_quadruped/meshes/solo12_hip_fe_hl.stl]
[GUI] [Err] [OgreMeshFactory.cc:506] Cannot load null mesh
[GUI] [Err] [SceneManager.cc:394] Failed to load geometry for visual: link_rl_hip_fe_visual
[GUI] [Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_upper_leg_left_side.stl]
[GUI] [Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_upper_leg_left_side.stl]
[GUI] [Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_upper_leg_left_side.stl]
[GUI] [Err] [MeshDescriptor.cc:56] Mesh manager can't find mesh named [model://solo12dof_quadruped/meshes/solo12_upper_leg_left_side.stl]
[GUI] [Err] [OgreMeshFactory.cc:506] Cannot load null mesh
[GUI] [Err] [SceneManager.cc:394] Failed to load geometry for visual: link_rl_ULM_visual
[GUI] [Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_left_side.STL]
[GUI] [Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_left_side.STL]
[GUI] [Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_left_side.STL]
[GUI] [Err] [MeshDescriptor.cc:56] Mesh manager can't find mesh named [model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_left_side.STL]
[GUI] [Err] [OgreMeshFactory.cc:506] Cannot load null mesh
[GUI] [Err] [SceneManager.cc:394] Failed to load geometry for visual: link_rl_LLM_visual
[GUI] [Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_hip_fe_hr.stl]
[GUI] [Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_hip_fe_hr.stl]
[GUI] [Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_hip_fe_hr.stl]
[GUI] [Err] [MeshDescriptor.cc:56] Mesh manager can't find mesh named [model://solo12dof_quadruped/meshes/solo12_hip_fe_hr.stl]
[GUI] [Err] [OgreMeshFactory.cc:506] Cannot load null mesh
[GUI] [Err] [SceneManager.cc:394] Failed to load geometry for visual: link_rr_hip_fe_visual
[GUI] [Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_upper_leg_right_side.stl]
[GUI] [Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_upper_leg_right_side.stl]
[GUI] [Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_upper_leg_right_side.stl]
[GUI] [Err] [MeshDescriptor.cc:56] Mesh manager can't find mesh named [model://solo12dof_quadruped/meshes/solo12_upper_leg_right_side.stl]
[GUI] [Err] [OgreMeshFactory.cc:506] Cannot load null mesh
[GUI] [Err] [SceneManager.cc:394] Failed to load geometry for visual: link_rr_ULM_visual
[GUI] [Err] [SystemPaths.cc:378] Unable to find file with URI [model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_right_side.STL]
[GUI] [Err] [SystemPaths.cc:473] Could not resolve file [model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_right_side.STL]
[GUI] [Err] [MeshManager.cc:173] Unable to find file[model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_right_side.STL]
[GUI] [Err] [MeshDescriptor.cc:56] Mesh manager can't find mesh named [model://solo12dof_quadruped/meshes/solo12_lower_leg_v2_right_side.STL]
[GUI] [Err] [OgreMeshFactory.cc:506] Cannot load null mesh
[GUI] [Err] [SceneManager.cc:394] Failed to load geometry for visual: link_rr_LLM_visual

And I often get error after command ros2 launch solo12dof_quadruped launch.py:
.[ERROR] [launch]: Caught exception in launch (see debug for traceback): "package 'ignition_gazebo' not found, searching:

a temporary solution is to add all meshes to the folder with world.sdf

Did you configure the GZ_SIM_RESOURCE_PATH environment variable in your launch file to include path to the models folder?

This is how I do it in my launch script:

I already mentioned that I use ROS2 Humble, that's why I don't have CMakeLists.txt file, instead of it I have setup.py file.

To clarify, when creating a ROS2 package one can create a C++ package which it must contain a CMakeLists.txt file, or if its a Python package it must have a setup.py file.
The reason why I showed you my CMakeLists.txt is because you are already using ROS2 you might as well use their ros launch capabilities so you don't hard code world and model paths, in particular in my CMakeLists.txt this line:
INSTALL(DIRECTORY gazebo DESTINATION share/${PROJECT_NAME}/)

installs your Gazebo world and model files to <YOUR ROS2 WORKSPACE>/install/<YOUR ROS2 PACKAGE NAME>/share/...
And then in the launch file I listed above it obtains the share directory to where the world an models are found and sets the GZ_SIM_RESOURCE_PATH environment variable.
The reason why your meshes are not load is because it does not know where to find them, which I was trying to show you how to do it via the above.

Thank you for answer, but I don't understand how I can launch my launch file alongside Gazebo simulation. I spent a lot of time searching and came to the conclusion use this command ign gazebo world.sdf.

This is my launch file for my project:
#!/usr/bin/env python3
import os

from ament_index_python.packages import get_package_share_directory
from launch import LaunchDescription
from launch.actions import ExecuteProcess
from launch.substitutions import LaunchConfiguration

def ros_gz_bridge(topic, ros_type, gz_type, direction):
    param = f'{topic}@{ros_type}{direction}{gz_type}'
    cmd = ['ros2', 'run', 'ros_gz_bridge', 'parameter_bridge', param]
    return ExecuteProcess(cmd=cmd, output='screen')

def ros_gz_image_bridge(topic):
    ros_type = "sensor_msgs/msg/Image"
    gz_type = "gz.msgs.Image"
    direction = "["
    return ros_gz_bridge(topic, ros_type, gz_type, direction)

def ros_gz_gimbal_joint_cmd_bridge(topic):
    ros_type = "std_msgs/msg/Float64"
    gz_type = "gz.msgs.Double"
    direction = "]"
    return ros_gz_bridge(topic, ros_type, gz_type, direction)

def ros_gz_gimbal_joint_state_bridge(topic):
    ros_type = "sensor_msgs/msg/JointState"
    gz_type = "gz.msgs.Model"
    direction = "["
    return ros_gz_bridge(topic, ros_type, gz_type, direction)

def ros_gz_camera_info_bridge(topic):
    ros_type = "sensor_msgs/msg/CameraInfo"
    gz_type = "gz.msgs.CameraInfo"
    direction = "["
    return ros_gz_bridge(topic, ros_type, gz_type, direction)

def ros_gz_pose_bridge(topic):
    ros_type = "geometry_msgs/msg/PoseStamped"
    gz_type = "gz.msgs.Pose"
    direction = "["
    return ros_gz_bridge(topic, ros_type, gz_type, direction)

def generate_launch_description():
    # Settings
    gz_world = "calibration.sdf"

    # Set gazebo environment variables
    pkg_share_dir = get_package_share_directory('proto_ros2')
    models_path = pkg_share_dir + "/gazebo/models"
    worlds_path = pkg_share_dir + "/gazebo/worlds"
    os.environ['GZ_SIM_RESOURCE_PATH'] = models_path + ":" + worlds_path

    # Gazebo Simulator
    gz_proc = ExecuteProcess(cmd=['gz', 'sim', gz_world, '-v'], output='screen')

    # Gazebo -> ROS2 bridges
    cam0_bridge = ros_gz_image_bridge("/gimbal/camera0")
    cam1_bridge = ros_gz_image_bridge("/gimbal/camera1")
    yaw_cmd_bridge = ros_gz_gimbal_joint_cmd_bridge("/gimbal/joint0_cmd")
    roll_cmd_bridge = ros_gz_gimbal_joint_cmd_bridge("/gimbal/joint1_cmd")
    pitch_cmd_bridge = ros_gz_gimbal_joint_cmd_bridge("/gimbal/joint2_cmd")
    yaw_state_bridge = ros_gz_gimbal_joint_state_bridge("/gimbal/joint0_state")
    roll_state_bridge = ros_gz_gimbal_joint_state_bridge("/gimbal/joint1_state")
    pitch_state_bridge = ros_gz_gimbal_joint_state_bridge("/gimbal/joint2_state")
    camera_info_bridge = ros_gz_camera_info_bridge("/gimbal/camera_info")
    aprilgrid_pose_bridge = ros_gz_pose_bridge("/model/aprilgrid/pose")
    gimbal_pose_bridge = ros_gz_pose_bridge("/model/gimbal/pose")

    # Launch
    descs = []
    descs.append(gz_proc)
    descs.append(cam0_bridge)
    descs.append(cam1_bridge)
    descs.append(yaw_cmd_bridge)
    descs.append(roll_cmd_bridge)
    descs.append(pitch_cmd_bridge)
    descs.append(yaw_state_bridge)
    descs.append(roll_state_bridge)
    descs.append(pitch_state_bridge)
    descs.append(camera_info_bridge)
    descs.append(aprilgrid_pose_bridge)
    descs.append(gimbal_pose_bridge)

    return LaunchDescription(descs)

I launch gazebo and mutliple ros_gz_bridge instances all-together in 1 launch file. In particular I launched gazebo with this line
    gz_proc = ExecuteProcess(cmd=['gz', 'sim', gz_world, '-v'], output='screen')

which is basically the same as running gz sim calibration.sdf -v in the terminal.

Hi, I've got same mistake, how can I setup the launch.py to use with a basic robot_mobile sdf?
that's my sdf file:
<sdf version='1.10'>
  <model name='mobile_robot'>
    <link name='base_link'>
      <inertial>
        <pose>0.0020750421909323949 5.0781237636199752e-08 0.080646152133059257 0 0 0</pose>
        <mass>106.9602152261089</mass>
        <inertia>
          <ixx>0.88826099725588525</ixx>
          <ixy>-9.8872892240544571e-07</ixy>
          <ixz>-0.01539333496338367</ixz>
          <iyy>1.931242990171125</iyy>
          <iyz>3.5065279745783849e-09</iyz>
          <izz>2.6330449929152451</izz>
        </inertia>
      </inertial>
      <collision name='base_link_collision'>
        <pose>0 0 0 0 0 0</pose>
        <geometry>
          <mesh>
            <scale>0.001 0.001 0.001</scale>
            <uri>model://mobile_robot_description/meshes/base_link.stl</uri>
          </mesh>
        </geometry>
      </collision>
      <collision name='base_link_fixed_joint_lump__lidar_link_1_collision_1'>
        <pose>0 0 0 0 0 0</pose>
        <geometry>
          <mesh>
            <scale>0.001 0.001 0.001</scale>
            <uri>model://mobile_robot_description/meshes/lidar_link_1.stl</uri>
          </mesh>
        </geometry>
      </collision>
      <visual name='base_link_visual'>
        <pose>0 0 0 0 0 0</pose>
        <geometry>
          <mesh>
            <scale>0.001 0.001 0.001</scale>
            <uri>model://mobile_robot_description/meshes/base_link.stl</uri>
          </mesh>
        </geometry>
      </visual>
      <visual name='base_link_fixed_joint_lump__lidar_link_1_visual_1'>
        <pose>0 0 0 0 0 0</pose>
        <geometry>
          <mesh>
            <scale>0.001 0.001 0.001</scale>
            <uri>model://mobile_robot_description/meshes/lidar_link_1.stl</uri>
          </mesh>
        </geometry>
      </visual>
    </link>
    <joint name='lb_wheel_joint' type='revolute'>
      <pose relative_to='base_link'>-0.17999999999999999 0.14999999999999999 0.029999999999999999 0 0 0</pose>
      <parent>base_link</parent>
      <child>lb_wheel_1</child>
      <axis>
        <xyz>0 -1 0</xyz>
        <limit>
          <lower>-inf</lower>
          <upper>inf</upper>
        </limit>
        <dynamics>
          <spring_reference>0</spring_reference>
          <spring_stiffness>0</spring_stiffness>
        </dynamics>
      </axis>
    </joint>
    <link name='lb_wheel_1'>
      <pose relative_to='lb_wheel_joint'>0 0 0 0 0 0</pose>
      <inertial>
        <pose>-5.5511151231257827e-17 0.015000000000000039 6.9388939039072284e-18 0 0 0</pose>
        <mass>0.46240316870024761</mass>
        <inertia>
          <ixx>0.000107</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>0.000145</iyy>
          <iyz>0</iyz>
          <izz>0.000107</izz>
        </inertia>
      </inertial>
      <collision name='lb_wheel_1_collision'>
        <pose>0.17999999999999999 -0.14999999999999999 -0.029999999999999999 0 0 0</pose>
        <geometry>
          <mesh>
            <scale>0.001 0.001 0.001</scale>
            <uri>model://mobile_robot_description/meshes/lb_wheel_1.stl</uri>
          </mesh>
        </geometry>
      </collision>
      <visual name='lb_wheel_1_visual'>
        <pose>0.17999999999999999 -0.14999999999999999 -0.029999999999999999 0 0 0</pose>
        <geometry>
          <mesh>
            <scale>0.001 0.001 0.001</scale>
            <uri>model://mobile_robot_description/meshes/lb_wheel_1.stl</uri>
          </mesh>
        </geometry>
      </visual>
    </link>
    <joint name='lf_wheel_joint' type='revolute'>
      <pose relative_to='base_link'>0.17649999999999999 0.14999999999999999 0.029999999999999999 0 0 0</pose>
      <parent>base_link</parent>
      <child>lf_wheel_1</child>
      <axis>
        <xyz>0 -1 0</xyz>
        <limit>
          <lower>-inf</lower>
          <upper>inf</upper>
        </limit>
        <dynamics>
          <spring_reference>0</spring_reference>
          <spring_stiffness>0</spring_stiffness>
        </dynamics>
      </axis>
    </joint>
    <link name='lf_wheel_1'>
      <pose relative_to='lf_wheel_joint'>0 0 0 0 0 0</pose>
      <inertial>
        <pose>2.775557561562891e-17 0.015000000000000039 6.9388939039072284e-18 0 0 0</pose>
        <mass>0.46240316870024761</mass>
        <inertia>
          <ixx>0.000107</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>0.000145</iyy>
          <iyz>0</iyz>
          <izz>0.000107</izz>
        </inertia>
      </inertial>
      <collision name='lf_wheel_1_collision'>
        <pose>-0.17649999999999999 -0.14999999999999999 -0.029999999999999999 0 0 0</pose>
        <geometry>
          <mesh>
            <scale>0.001 0.001 0.001</scale>
            <uri>model://mobile_robot_description/meshes/lf_wheel_1.stl</uri>
          </mesh>
        </geometry>
      </collision>
      <visual name='lf_wheel_1_visual'>
        <pose>-0.17649999999999999 -0.14999999999999999 -0.029999999999999999 0 0 0</pose>
        <geometry>
          <mesh>
            <scale>0.001 0.001 0.001</scale>
            <uri>model://mobile_robot_description/meshes/lf_wheel_1.stl</uri>
          </mesh>
        </geometry>
      </visual>
    </link>
    <joint name='rb_wheel_joint' type='revolute'>
      <pose relative_to='base_link'>-0.1835 -0.14999999999999999 0.029999999999999999 0 0 0</pose>
      <parent>base_link</parent>
      <child>rb_wheel_1</child>
      <axis>
        <xyz>0 1 0</xyz>
        <limit>
          <lower>-inf</lower>
          <upper>inf</upper>
        </limit>
        <dynamics>
          <spring_reference>0</spring_reference>
          <spring_stiffness>0</spring_stiffness>
        </dynamics>
      </axis>
    </joint>
    <link name='rb_wheel_1'>
      <pose relative_to='rb_wheel_joint'>0 0 0 0 0 0</pose>
      <inertial>
        <pose>-5.5511151231257827e-17 -0.015000000000000039 6.9388939039072284e-18 0 0 0</pose>
        <mass>0.46240316870024761</mass>
        <inertia>
          <ixx>0.000107</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>0.000145</iyy>
          <iyz>0</iyz>
          <izz>0.000107</izz>
        </inertia>
      </inertial>
      <collision name='rb_wheel_1_collision'>
        <pose>0.1835 0.14999999999999999 -0.029999999999999999 0 0 0</pose>
        <geometry>
          <mesh>
            <scale>0.001 0.001 0.001</scale>
            <uri>model://mobile_robot_description/meshes/rb_wheel_1.stl</uri>
          </mesh>
        </geometry>
      </collision>
      <visual name='rb_wheel_1_visual'>
        <pose>0.1835 0.14999999999999999 -0.029999999999999999 0 0 0</pose>
        <geometry>
          <mesh>
            <scale>0.001 0.001 0.001</scale>
            <uri>model://mobile_robot_description/meshes/rb_wheel_1.stl</uri>
          </mesh>
        </geometry>
      </visual>
    </link>
    <joint name='rf_wheel_joint' type='revolute'>
      <pose relative_to='base_link'>0.17999999999999999 -0.14999999999999999 0.029999999999999999 0 0 0</pose>
      <parent>base_link</parent>
      <child>rf_wheel_1</child>
      <axis>
        <xyz>0 1 0</xyz>
        <limit>
          <lower>-inf</lower>
          <upper>inf</upper>
        </limit>
        <dynamics>
          <spring_reference>0</spring_reference>
          <spring_stiffness>0</spring_stiffness>
        </dynamics>
      </axis>
    </joint>
    <link name='rf_wheel_1'>
      <pose relative_to='rf_wheel_joint'>0 0 0 0 0 0</pose>
      <inertial>
        <pose>0 -0.015000000000000039 6.9388939039072284e-18 0 0 0</pose>
        <mass>0.46240316870024761</mass>
        <inertia>
          <ixx>0.000107</ixx>
          <ixy>0</ixy>
          <ixz>0</ixz>
          <iyy>0.000145</iyy>
          <iyz>0</iyz>
          <izz>0.000107</izz>
        </inertia>
      </inertial>
      <collision name='rf_wheel_1_collision'>
        <pose>-0.17999999999999999 0.14999999999999999 -0.029999999999999999 0 0 0</pose>
        <geometry>
          <mesh>
            <scale>0.001 0.001 0.001</scale>
            <uri>model://mobile_robot_description/meshes/rf_wheel_1.stl</uri>
          </mesh>
        </geometry>
      </collision>
      <visual name='rf_wheel_1_visual'>
        <pose>-0.17999999999999999 0.14999999999999999 -0.029999999999999999 0 0 0</pose>
        <geometry>
          <mesh>
            <scale>0.001 0.001 0.001</scale>
            <uri>model://mobile_robot_description/meshes/rf_wheel_1.stl</uri>
          </mesh>
        </geometry>
      </visual>
    </link>
    <frame name='base_link_lidar_joint' attached_to='base_link'>
      <pose>0.22500000000000001 0 0.13 0 0 0</pose>
    </frame>
    <frame name='lidar_link_1' attached_to='base_link_lidar_joint'>
      <pose>0 0 0 0 0 0</pose>
    </frame>

      <plugin
        filename="ignition-gazebo-diff-drive-system"
        name="ignition::gazebo::systems::DiffDrive">
        <left_joint>lb_wheel_joint</left_joint>
        <right_joint>rb_wheel_joint</right_joint>
        <wheel_separation>1.25</wheel_separation>
        <wheel_radius>0.3</wheel_radius>
        <odom_publish_frequency>1</odom_publish_frequency>
        <max_linear_acceleration>1</max_linear_acceleration>
        <min_linear_acceleration>-1</min_linear_acceleration>
        <max_angular_acceleration>2</max_angular_acceleration>
        <min_angular_acceleration>-2</min_angular_acceleration>
        <max_linear_velocity>0.5</max_linear_velocity>
        <min_linear_velocity>-0.5</min_linear_velocity>
        <max_angular_velocity>1</max_angular_velocity>
        <min_angular_velocity>-1</min_angular_velocity>
      </plugin>

  </model>
</sdf>

combuster@combuster-desktop:~/ws_forklift/src/mobile_robot_description/urdf$ gz sim robot.sdf
qt.qpa.plugin: Could not find the Qt platform plugin "wayland" in ""
[Err] [SDFFeatures.cc:843] The geometry element of collision [base_link_collision] couldn't be created
[Err] [SDFFeatures.cc:843] The geometry element of collision [base_link_fixed_joint_lump__lidar_link_1_collision_1] couldn't be created
[Err] [SDFFeatures.cc:843] The geometry element of collision [lb_wheel_1_collision] couldn't be created
[Err] [SDFFeatures.cc:843] The geometry element of collision [lf_wheel_1_collision] couldn't be created
[Err] [SDFFeatures.cc:843] The geometry element of collision [rb_wheel_1_collision] couldn't be created
[Err] [SDFFeatures.cc:843] The geometry element of collision [rf_wheel_1_collision] couldn't be created
[Err] [SystemPaths.cc:425] Unable to find file with URI [model://mobile_robot_description/meshes/base_link.stl]
[Err] [SystemPaths.cc:525] Could not resolve file [model://mobile_robot_description/meshes/base_link.stl]
[Err] [MeshManager.cc:193] Unable to find file[model://mobile_robot_description/meshes/base_link.stl]
[Err] [SystemPaths.cc:425] Unable to find file with URI [model://mobile_robot_description/meshes/lidar_link_1.stl]
[Err] [SystemPaths.cc:525] Could not resolve file [model://mobile_robot_description/meshes/lidar_link_1.stl]
[Err] [MeshManager.cc:193] Unable to find file[model://mobile_robot_description/meshes/lidar_link_1.stl]
[Err] [SystemPaths.cc:425] Unable to find file with URI [model://mobile_robot_description/meshes/lb_wheel_1.stl]
[Err] [SystemPaths.cc:525] Could not resolve file [model://mobile_robot_description/meshes/lb_wheel_1.stl]
[Err] [MeshManager.cc:193] Unable to find file[model://mobile_robot_description/meshes/lb_wheel_1.stl]
[Err] [SystemPaths.cc:425] Unable to find file with URI [model://mobile_robot_description/meshes/lf_wheel_1.stl]
[Err] [SystemPaths.cc:525] Could not resolve file [model://mobile_robot_description/meshes/lf_wheel_1.stl]
[Err] [MeshManager.cc:193] Unable to find file[model://mobile_robot_description/meshes/lf_wheel_1.stl]
[Err] [SystemPaths.cc:425] Unable to find file with URI [model://mobile_robot_description/meshes/rb_wheel_1.stl]
[Err] [SystemPaths.cc:525] Could not resolve file [model://mobile_robot_description/meshes/rb_wheel_1.stl]
[Err] [MeshManager.cc:193] Unable to find file[model://mobile_robot_description/meshes/rb_wheel_1.stl]
[Err] [SystemPaths.cc:425] Unable to find file with URI [model://mobile_robot_description/meshes/rf_wheel_1.stl]
[Err] [SystemPaths.cc:525] Could not resolve file [model://mobile_robot_description/meshes/rf_wheel_1.stl]
[Err] [MeshManager.cc:193] Unable to find file[model://mobile_robot_description/meshes/rf_wheel_1.stl]
[GUI] [Err] [SystemPaths.cc:425] Unable to find file with URI [model://mobile_robot_description/meshes/base_link.stl]
[GUI] [Err] [SystemPaths.cc:525] Could not resolve file [model://mobile_robot_description/meshes/base_link.stl]
[GUI] [Err] [MeshManager.cc:193] Unable to find file[model://mobile_robot_description/meshes/base_link.stl]
[GUI] [Err] [SceneManager.cc:425] Failed to load geometry for visual: base_link_visual
[GUI] [Err] [SystemPaths.cc:425] Unable to find file with URI [model://mobile_robot_description/meshes/lidar_link_1.stl]
[GUI] [Err] [SystemPaths.cc:525] Could not resolve file [model://mobile_robot_description/meshes/lidar_link_1.stl]
[GUI] [Err] [MeshManager.cc:193] Unable to find file[model://mobile_robot_description/meshes/lidar_link_1.stl]
[GUI] [Err] [SceneManager.cc:425] Failed to load geometry for visual: base_link_fixed_joint_lump__lidar_link_1_visual_1
[GUI] [Err] [SystemPaths.cc:425] Unable to find file with URI [model://mobile_robot_description/meshes/lb_wheel_1.stl]
[GUI] [Err] [SystemPaths.cc:525] Could not resolve file [model://mobile_robot_description/meshes/lb_wheel_1.stl]
[GUI] [Err] [MeshManager.cc:193] Unable to find file[model://mobile_robot_description/meshes/lb_wheel_1.stl]
[GUI] [Err] [SceneManager.cc:425] Failed to load geometry for visual: lb_wheel_1_visual
[GUI] [Err] [SystemPaths.cc:425] Unable to find file with URI [model://mobile_robot_description/meshes/lf_wheel_1.stl]
[GUI] [Err] [SystemPaths.cc:525] Could not resolve file [model://mobile_robot_description/meshes/lf_wheel_1.stl]
[GUI] [Err] [MeshManager.cc:193] Unable to find file[model://mobile_robot_description/meshes/lf_wheel_1.stl]
[GUI] [Err] [SceneManager.cc:425] Failed to load geometry for visual: lf_wheel_1_visual
[GUI] [Err] [SystemPaths.cc:425] Unable to find file with URI [model://mobile_robot_description/meshes/rb_wheel_1.stl]
[GUI] [Err] [SystemPaths.cc:525] Could not resolve file [model://mobile_robot_description/meshes/rb_wheel_1.stl]
[GUI] [Err] [MeshManager.cc:193] Unable to find file[model://mobile_robot_description/meshes/rb_wheel_1.stl]
[GUI] [Err] [SceneManager.cc:425] Failed to load geometry for visual: rb_wheel_1_visual
[GUI] [Err] [SystemPaths.cc:425] Unable to find file with URI [model://mobile_robot_description/meshes/rf_wheel_1.stl]
[GUI] [Err] [SystemPaths.cc:525] Could not resolve file [model://mobile_robot_description/meshes/rf_wheel_1.stl]
[GUI] [Err] [MeshManager.cc:193] Unable to find file[model://mobile_robot_description/meshes/rf_wheel_1.stl]
[GUI] [Err] [SceneManager.cc:425] Failed to load geometry for visual: rf_wheel_1_visua

Please take a look at https://gazebosim.org/docs/harmonic/ros_gz_project_template_guide#accessing-simulation-assets. It covers how you set up GZ_SIM_RESOURCE_PATH so that Gazebo finds the meshes included in your model.
Since this is not a bug, I'll go ahead and close the issue.


Implementation of shuffle functions

This issue tracks the progress on implementing shuffle functions in xsimd. The aproach is to implement different operations in dedicated functions (similar to what is done in libscimdpp. If you want to contribute, please reply to this issue with the name of the function you're currently working on.

[x] zip_hi / zip_lo (@guyuqi): SSE and NEON done, missing AVX and AVX512
[ ] lrot / rrot (@serge-sans-paille)

Plus we now have generic implementation for swizzle and shuffle with constant mask :-)


Locally built proof failed validation: the proof doesn't have sufficient blue work in order to replace the current DAG

Describe the bug
Can't sync with testnet-11
2024-04-19 14:53:56.400+10:00 [INFO ] Validating level 5 from the pruning point proof (2107 headers)
2024-04-19 14:53:58.509+10:00 [INFO ] Validating level 4 from the pruning point proof (2107 headers)
2024-04-19 14:54:00.835+10:00 [INFO ] Validating level 3 from the pruning point proof (2107 headers)
2024-04-19 14:54:03.109+10:00 [INFO ] Validating level 2 from the pruning point proof (2107 headers)
2024-04-19 14:54:05.386+10:00 [INFO ] Validating level 1 from the pruning point proof (2107 headers)
2024-04-19 14:54:07.933+10:00 [INFO ] Validating level 0 from the pruning point proof (2107 headers)
thread 'tokio-runtime-worker' panicked at protocol/flows/src/v5/ibd/flow.rs:318:29:
Locally built proof failed validation: the proof doesn't have sufficient blue work in order to replace the current DAG
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
Exiting...

To Reproduce
Steps to reproduce the behavior:

macos v0.13.6 node / linux
./kaspad --testnet --netsuffix=11 --appdir=./data

Expected behavior
Not error. Not exit.
Desktop (please complete the following information):

OS: MacOS Intel / linux (docker)
Kaspad version: 0.13.6

Edit:
Same exact issue running the linux build in docker

Fixed by #453


[BUG] [SPIKE] ELIMS messages not returning in Daily Data search

Problem statement
What you need to know
As an example,

Log in to staging as a Prime Admin
Set as CDC-ELIMS organization
Go to Daily Data
The following file appears in the table: InterPartner~ELIMS_ELR~CDC~KY~Test~Test~20240315150045113~STOP~13_72321_05227632_40060.hl7-None-0444ca52-e09c-4401-bf20-fec13d16ffef-20240318150040.hl7
But when you use the Search feature to find that file, it does not appear in the results

Expected Result: The file should be shown in the search results
Acceptance criteria

[ ] All ELIMS files can be returned with a valid search
[ ] Test the solution on the following orgs:

[ ] CDC-ELIMS
[ ] NY-PHD
[ ] CA-DPH

The filename has special characters that need to be encoded for the API to match on the string.


⚠ Fortnite has degraded performance

In 4594726, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1600 ms

Resolved: Fortnite performance has improved in 08c84be.


Mention @obi1kenobi for rustdoc JSON types changes

I'm one of the maintainers of cargo-semver-checks, and as mentioned in Zulip it's very useful to me to know about upcoming rustdoc JSON types changes so I can be ready to publish new cargo-semver-checks releases compatible with the new JSON format.
I hope this is a reasonable and appropriate mechanism for that, and not an imposition on the team. If there's a better alternative I should try instead, I'd love to learn about it! Apologies for any mistakes in the file — this is the first time I've seen the internals of highfive.

Sorry, I forgot this had been moved over to triagebot. You should add yourself to https://github.com/rust-lang/rust/blob/14636887008d9ee67a12b4f05f1e404ed1d64579/triagebot.toml#L338-L348, feel free to r? @jyn514 and I'll approve :)


GITTER

Not all words/ideas/questions are worth an issue. A Gitter chat room could sometime be the right place to exchange some words.

+1 gitter has become my go to idle chat

I'll put in my vote for making a slack community.

I'll set something up within the next hour.

Done!  https://gitter.im/jaws-stack/JAWS


Figures shouldn't be saved by default

Should need to specify filename or do_save=True, not have sim.plot() or scens.plot() try to save a figure

Unclear what this even refers to now lol


Feat: Netlify Logs quickstart

New files for the Netlify Logs quickstart and updates for the Netlify Builds quickstart (name updates and associated files).
Summary
Creating new files for the Netlify Logs quickstart and updating the name and file structure for the existing Netlify Builds quickstart.

Pre merge checklist

[x] Did you check you NRQL syntax? - Does it work?
[x] Did you check your dashboard image quality? -  Do they look good?
[ ] Did you check that your alerts actually work?
[x] Did you include an InstallPlan and Documentation reference?
[x] Did you check your descriptive content for voice, tone, spelling and grammar errors?
[x] Did you attach images of your dashboards to the PR so we can see them working?

Screenshots
Attach images of any visual changes, such as a dashboard here.

This looks to have a conflict in quickstarts/netlify/config.yml can you take a look at that @NetlifyMatt or @jcountsNR

Hey folks I'm trying to get PR #932 reverted as it deleted some images which are required by the Netlify quickstart. This will probably impact this PR as well as the directory structure has changed.
Also, the change in directory structure will mean that the image URL in this markdown widget will need to be updated too

@jpvajda  done. It looks like the only conflict was on the name which reverted. @aaronbassett , the link should still work since there the netlify/images dir is still correct.

closing for https://github.com/newrelic/newrelic-quickstarts/pull/967


sanitycheck: clarify -s vs -T options in ztest doc

Clarify the difference and fix the ztest documentation.
This fixes #10662.

:+1:

Codecov Report

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

@@           Coverage Diff           @@
##           master   #11123   +/-   ##
=======================================
  Coverage    53.1%    53.1%
=======================================
  Files         218      218
  Lines       26853    26853
  Branches     5950     5950
=======================================
  Hits        14259    14259
  Misses      10162    10162
  Partials     2432     2432

Continue to review full report at Codecov.

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


Scroll to is not working on Firefox

https://github.com/nash403/navscroll-js/blob/a93f0ef44ec623fc76aeaf8d8e97ea0ff9928a51/src/navscroll.js#L172
Hi nash403!
There should be
const clickedElement = e.currentTarget;
instead of
const clickedElement = event.currentTarget;
window.event is avalaible under Chrome\IE only.

Hello,
You are right ! I am fixing this right away.
Thank you !

Thanks!


Support for user info email check

This pull request includes several changes to the src/Provider.php file, primarily focusing on handling user email retrieval and modifying the HTTP request method for fetching user information. The most important changes are summarized below:
Improvements to user email handling:

src/Provider.php: Updated the user function to retrieve the user's email using the access token if the initial payload has an empty email, and throws an EmptyEmailException if the email is still not found.

Modifications to HTTP request method:

src/Provider.php: Changed the HTTP request method in the getUserByToken function from post to get to fetch user information using the access token.

Minor code cleanup:

src/Provider.php: Added a new line at the end of the getUserByToken function for better code readability.

Thank you very much for the contribution! Looks good to me.


Siraji/pages/tokens details

What kind of PR is this?:

/kind feaure
What this PR does / why we need it:
Which issue(s) does this PR fixes?:

Fixes
Additional comments?:

Codecov Report

Merging #186 (3be7c5b) into main (cab5b23) will increase coverage by 6.60%.
The diff coverage is 83.33%.

@@            Coverage Diff             @@
##             main     #186      +/-   ##
==========================================
+ Coverage   71.92%   78.52%   +6.60%
==========================================
  Files          34       36       +2
  Lines         317      326       +9
  Branches       72       73       +1
==========================================
+ Hits          228      256      +28
+ Misses         84       65      -19
  Partials        5        5

Impacted Files
Coverage Δ

src/layouts/components/Footer.tsx
100.00% <ø> (ø)

src/layouts/components/Header.tsx
85.71% <ø> (+5.71%)
:arrow_up:

src/pages/dex/index.tsx
80.00% <ø> (+9.41%)
:arrow_up:

src/components/commons/tables/PoolPairs.tsx
71.42% <71.42%> (ø)

src/components/commons/AdaptiveTable.tsx
100.00% <100.00%> (ø)

src/components/commons/CursorPagination.tsx
63.63% <100.00%> (+18.18%)
:arrow_up:

src/pages/tokens/index.tsx
100.00% <100.00%> (ø)

... and 6 more

Continue to review full report at Codecov.

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


Drop single-statement brackets in code style?

For quite some time, I've dropped the requirement to wrap everything after if/for/while in brackets in my other libraries and see no strong reasons to adhere to the old conventional wisdom in Leaflet as well.
It's not that we need to convert to non-bracketed single statements everywhere, but in a lot of places, it actually helps code readability, while I never experienced the trap that was the original cause of the "always require brackets" rule by Crockford.
Opinions?

Personally, I think it's fine, and can improve readability, as long as the whole statement is on one line. For example:
if (foo) bar();

but I'm not so fond of:
if (foo)
    bar();

It's of course mostly a matter of opinion. I used to hate indenting with tabs, but after working with Leaflet for a while, I don't think about it any more :smile:.

Yes, I'm not using the second type notation either. So we can limit the rule to one-line statements.

I never experienced the trap either, so this comes down to a matter of preference -- whatever you prefer is fine.

:+1: Paint the shed :)

I assume brackets will be inserted automatically when the code is minified?

@Starefossen on the contrary, brackets are removed on the minification step. It's a matter of code maintenance.

I see. As a side note, this is what the Airbnb JavaScript Style Guide() { says about blocks:
// bad
if (test)
  return false;

// good
if (test) return false;

// good
if (test) {
  return false;
}

// bad
function() { return false; }

// good
function() {
  return false;
}

I'm a fan of always including braces, just in case you get tricked by the indentation level of your code. Apple's GotoFail bug is an infamous example of when an incorrect indentation level can trick even the most experienced of coders, e.g.
if (test)
    doThings();

Gets added to over time and is changed to
if (test)
    doThings();
    doOtherThings();
...

and doOtherThings gets called whatever the value of test is.
I don't believe removing braces aids readability, is faster or more efficient so I'd keep them. They'll get minified away when they're not required, so let automated tools take care of the inessential ones ;) I also think it aids beginners to see rules like this applied consistently.

@daverayment this trap can only happen if you allow the statement to go on new line. If you write like this: if (test) doThings();, it's unlikely to happen.
In my experience, removing braces aids readability in some cases where it makes the code easier to skim.
But you bring an excellent point of it aiding beginners. Leaflet gets contributions from people of all experience levels, so it's probably not worth changing the conventions. And after switching to ESLint, we'll have a more strict test script to aid in making pull request in line with conventions.


Activation vars

I would like to set a var on a custom monster activation.  Is that possible?

or chain an event to a custom monster activation?  I would like one of my custom monster activations to summon some minion monsters.

Are we talking D2E or MoM?

OK so you want to add additional monsters in the monster phase, would they then activate in the same phase or not till next round?  I assume you only want to do this on a particular activation not any activation?  You can do something similar with a mythos event that triggers randomly and spawns another monster in the same space (or end round event if you don't want the new monster to activate).

Ideally I could set a var on a monster activation.  Then have an event that triggers at EndRound or StartRound that places the monsters.  It would go something like this.
Activation:
CustomMonster chants a summoning spell, the ground rumbles but there doesn't seem to be any immediate danger.
assign summonvar,=,1
Event
trigger  StartRound
condition  summonvar,=,1
The earth rumbles again louder, this time cracking open.  Two Zombies crawl out of the crevice....triggers events that spawn two zombies
assign summonvar,=,0
Not a big deal but something I thought would be cool to weave into my story.

Another way to implement this is to force a monster activation based on a var.  So you can decide that this round monsters will spawn and force that activation.  I feel that this solution is more generically useful as you can turn activations on and off based on various conditions.  This will mean adding a var conditions section to the activation.
Does that sound OK?

Yes, that's great.  I've been thinking the conditions and vars for activations would allow you to basically set an order for activations.  Which would be cool as well.    I can push the game in that direction by making activations increase in intenstity.  You could also do the opposite.

One hack work around would be to have a number of custom monsters and silently remove and readd the monster with different activations.

Ok, got it.
Another question.  Pretty sure you must have done this in FoHL with the maniacs but how do I assign a var for when a custom monster is defeated, or better yet would be to trigger an event.

https://github.com/NPBruce/valkyrie/wiki/EventTriggers

sorry forgot about that.


Todo edit feature

First thing, PLEASE READ THIS: ReactPlay Code Review Checklist

Description
Added 'edit task' feature to the 'To-do App'. Users can correct any typos or add extra info with the help of this functionality.
Fixes # (issue)
Previously there was no option to edit a task.
Type of change
Please delete options that are not relevant.

[x] New feature (non-breaking change which adds functionality)

How Has This Been Tested?

Click on the 'edit' icon
Make changes to the task
Submit the task
Task is updated

Checklist:

[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have made corresponding changes to the documentation
[x] My changes generate no new warnings
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] New and existing unit tests pass locally with my changes
[ ] Any dependent changes have been merged and published in downstream modules

@valeshgopal Thanks for the play. Could you please create an issue for this play?

@valeshgopal Thanks for the play. Could you please create an issue for this play?

Hi Tapas! I've opened the issue.

Hi Tapas! I've made the following changes:

Changed UI look to make it feel more aesthetic
Made the form responsive
Moved local Storage hook from https://github.com/reactplay/react-play/blob/main/src/plays/keeper/Hooks/useLocalStorage.js to https://github.com/reactplay/react-play/tree/main/src/common/hooks and imported it from there.
Added folder name before localstorage key to make it more unique - (eg: useLocalStorage('react-todo-app/todos', []), useLocalStorage('keeper/notes', []))

Hi Tapas! I've made the following changes:

Changed UI look to make it feel more aesthetic
Made the form responsive
Moved local Storage hook from https://github.com/reactplay/react-play/blob/main/src/plays/keeper/Hooks/useLocalStorage.js to https://github.com/reactplay/react-play/tree/main/src/common/hooks and imported it from there.
Added folder name before localstorage key to make it more unique - (eg: useLocalStorage('react-todo-app/todos', []), useLocalStorage('keeper/notes', []))

I loved that. Thank You!
Given a tiny comment. Now I will test the changes from UI too.

@all-contributors please add @valeshgopal for Code


Added expert mode

Short description

Added expert mode for displaying additional features.
Proposed changes

Checkbox for enabling/disabling expert mode in settings menu.
Enabled expert mode displays features: page mirroring and recurring
events.

Open Issues
Currently two features for adding to expert mode are missing:

Do-Not-Translate-Tag
Page-based permissions

Until now I couldn't find the places where these features are implemented.
Any hints for their locations are more than welcome.
Resolved issues

Fixes: #499
Screenshot

@melegiul Thanks for your PR!
I'm sorry, it turned out that our requirements for the expert mode were not well thought out and need some further discussions. Thus, I think we should conclude the discussion in Mattermost and issue #499 before proceeding this this PR. Sorry if this involves that you might have to discard parts of your work :confused:

@melegiul Thanks for your PR!
I'm sorry, it turned out that our requirements for the expert mode were not well thought out and need some further discussions. Thus, I think we should conclude the discussion in Mattermost and issue #499 before proceeding this this PR. Sorry if this involves that you might have to discard parts of your work :confused:

@melegiul Thanks for your PR!
I'm sorry, it turned out that our requirements for the expert mode were not well thought out and need some further discussions. Thus, I think we should conclude the discussion in Mattermost and issue #499 before proceeding this this PR. Sorry if this involves that you might have to discard parts of your work confused

No problem, I just tried to follow the discussion on mattermost, but i'm not sure if get it right, so it's probably good to list some open question.

@melegiul Thanks for your PR!
I'm sorry, it turned out that our requirements for the expert mode were not well thought out and need some further discussions. Thus, I think we should conclude the discussion in Mattermost and issue #499 before proceeding this this PR. Sorry if this involves that you might have to discard parts of your work confused

No problem, I just tried to follow the discussion on mattermost, but i'm not sure if get it right, so it's probably good to list some open question.

This is the result of the discussion (please correct me where I'm wrong):

We consider translation experts a subgroup of expert users.
We hide GUI elements relevant for translation from normal users, for example XLIFF import and export and filters.
After we implemented all translation functionality (most important filtering), we iterate over the expert mode concept and could introduce an additional "translation expert role/mode". But this is not part of this issue/pull request.

This is the result of the discussion (please correct me where I'm wrong):

We consider translation experts a subgroup of expert users.
We hide GUI elements relevant for translation from normal users, for example XLIFF import and export and filters.
After we implemented all translation functionality (most important filtering), we iterate over the expert mode concept and could introduce an additional "translation expert role/mode". But this is not part of this issue/pull request.

This is the result of the discussion (please correct me where I'm wrong):
* We consider translation experts a subgroup of expert users.

* We hide GUI elements relevant for (mass-)translation from normal users, for example XLIFF import and export and filters.

* After we implemented all translation functionality (most important filtering), we iterate over the expert mode concept and could introduce an additional "translation expert role/mode". But this is not part of this issue/pull request.

Yes, that should clarify the open questions, so I won't consider the topic about the "translation expert role/model" for now. That means an user operating in "expert mode" can not access XLIFF import/export elements, so I leave these elements for the next iteration, when the "translation expert mode" is implemented.

This is the result of the discussion (please correct me where I'm wrong):
* We consider translation experts a subgroup of expert users.

* We hide GUI elements relevant for (mass-)translation from normal users, for example XLIFF import and export and filters.

* After we implemented all translation functionality (most important filtering), we iterate over the expert mode concept and could introduce an additional "translation expert role/mode". But this is not part of this issue/pull request.

Yes, that should clarify the open questions, so I won't consider the topic about the "translation expert role/model" for now. That means an user operating in "expert mode" can not access XLIFF import/export elements, so I leave these elements for the next iteration, when the "translation expert mode" is implemented.

That means an user operating in "expert mode" can not access XLIFF import/export elements, so I leave these elements for the next iteration, when the "translation expert mode" is implemented.

Just for reference: As we just discussed in our call, it is exactly the other way round: So users with "expert mode" should be able to access XLIFF functions and users without "expert mode" should not see this functions.
The next iteration is only optional if we determine that one mode is not enough and we need an additional setting.

That means an user operating in "expert mode" can not access XLIFF import/export elements, so I leave these elements for the next iteration, when the "translation expert mode" is implemented.

Just for reference: As we just discussed in our call, it is exactly the other way round: So users with "expert mode" should be able to access XLIFF functions and users without "expert mode" should not see this functions.
The next iteration is only optional if we determine that one mode is not enough and we need an additional setting.

Looks good +1
Sorry, I missed this earlier on: Could you also add the field "expert_mode": true to the test root user profile? This way, the expert mode is enabled by default for any new dev environments...

No problem, expert mode is now enabled in test data root


Removing the temp sensor on Air purifier

Hi Merdok.
Perhaps a dumb question with an obvious solution but is it possible to remove the temperature readout from a zhimi.airpurifier.mb3? Basically, I do not want the purifier to report the temp to homekit.
Can't seem to figure out how to remove just the temp reading.
Thank you!

Currently is not possible. But why would you like to do that? I mean if a air purifier has an temperature sensor then it will be shown. On air purifiers with native homekit support it is also not possible to remove that as far as i know...

Ah ok. The reason I asked is because I've always found the temp sensor slightly off and have a new, more accurate sensor in the room. But it seems like HomeKit will use both sensors and reports a "range" temperature. If not possible, its fine, but yeah, that's the issue I'm seeing.
Thank you!