"BĂBENI" is localities in "BĂBENI" city, "VALCEA" county

Description
When an user search a location, this appear in the drop-down menu
according to the law
Precondition
The website ( https://peviitor-ro.github.io/ui.orase/ ) is up an running.
Empty the search bar after every step

Steps 1
Write "BĂBENI"
Expected result
In the drop down menu you find "Localitatea BĂBENI, VALCEA (BĂBENI)"
Test Data
BĂBENI


Ball trajectory does not match ray pointing forward out of controller.

The balls shooting out of the controller do not match the direction of the ray that is pointing out from the front of the controller. Additionally, the 1st shot is always straight up.
https://user-images.githubusercontent.com/40374800/193368166-86aee4b4-f0e6-449d-ba04-da15c40b0cd5.mp4

You need to use inputType "Ray(Left|Right)" instead of "Controller(Left|Right)". Check the CursorLeft/Right objects, they have it set up correctly. This will orient the attached-to object such that forward is the ray direction, not the orientation of the controller.
I assume you are using getForward() to retrieve the direction, then you may want to just move the component to the cursor object.

Okay, I changed the inputType for both controllers to Ray(Left|Right) and moved the ball-spawner component over to the cursor object.
It's still having the same issue as before where the trajectory becomes more skewed as the controller is panned away from the cardinal axis (black).

https://user-images.githubusercontent.com/40374800/193708055-851d2f88-8f79-4334-86d2-8c27fb6215f8.mp4
I'm assuming that this.object.getComponent('cursor').cursorRayObject.getForward(dir); is not producing the same ray that I'm expecting (from the controller).

After confirming that this.object.getComponent('cursor').cursorRayObject.getForward(dir); does produce the expected vector, I realized that ball-physics.js was the issue. Currently creating a new linear physics component for the ball/bullet.


Add support to add custom commands to a project

Add support to create new commands in the config/bin directory and run them from bin/customcommand.

[x] Add a bin/init script that scans the config/bin directory and create symlinks to the commands from within the bin directory.
[x] Add a custom command example.
[x] Update the documentation.

See #22


Support graceful shutdown for real this time

     * The {@link StatisticsHandler} must be configured so that open connections can
     * be tracked for a graceful shutdown.

@wesleyk yes, I tried to fix this before but forgot to add StatisticsHandler

@swankjesse the behaviour change is that jetty ignores all the graceful shutdown stuff if you don't install StatisticsHandler so it should be on now


ISPN-8082 Remove setSync from RocksDB WriteOptions.

https://issues.jboss.org/browse/ISPN-8082

Merged. thanks !


Is the attention heat map visualization function of the DETR model implemented?

Is the attention heat map visualization function of the DETR model implemented?

Sry we did not support heatmap visualization on Attention, if needed, we will implement some more visualization function on detrex

Sry we did not support heatmap visualization on Attention, if needed, we will implement some more visualization function on detrex

But it needs some hack to do this, we may update some tutorial about this

@rentainhe  When will it be realized the attention heat map visualization function of the DETR model implemented, please


Determine packaged server name automatically

When using a packaged server with a non-default server name (i.e. defaultServer), it is required that BP_OPEN_LIBERTY_SERVER_NAME be set. If there is only one possible server to use and BP_OPEN_LIBERTY_SERVER_NAME is not set, we should automatically detect the server name.
Also, we may need to improve the error here also if a packaged server was provided but server was not found as it was not obvious when someone was not using the correct server name.

I would like to add another edge case that we can improve here.
Right now if you set BP_OPEN_LIBERTY_SERVER_NAME things work as expected at build time. However, the linker helper also expects this variable to be set at runtime. If it's not the linker helper will use the default server name and it won't find server.xml for the custom-named server.
The issue here is that we use BP_ to signify build-time env settings and BPL_ to indicate launch-time settings, so passing BP_OPEN_LIBERTY_SERVER_NAME at launch time breaks that convention. We'd need the linker to look for BPL_OPEN_LIBERTY_SERVER_NAME to be consistent with that naming policy.
That said, I think we can probably make things even easier here. The buildpack knows the server name at build time, either cause the user sets it or we find a default as is indicated above. The buildpack can then set BPI_OPEN_LIBERTY_SERVER_NAME and pass that information to the linker at runtime. I would not consider the server name to be secret, so I think it's OK if we  embed that env variable into the image.
We'd just need the linker to look at BPI_OPEN_LIBERTY_SERVER_NAME and fail if it's not set, since the buildpack should always set that value if the default server name is used.


⚠ ClamAV has degraded performance

In 229c8c0, ClamAV (https://spamassassin.apache.org/) experienced degraded performance:

HTTP code: 200
Response time: 178 ms

Resolved: ClamAV performance has improved in edf09d1.


Is there a commandline utility for making use of this library?

I currently use python-eyeD3 for setting id3 tags.
Is there a linux command line application/script that utilizes this library?
I normally use a bash script I wrote that utilizes eyeD3, but im wanting to try something else:
eyeD3 --quiet --no-color -2 --to-v2.3 -a "$artist" -b "$artist" -A "$album" -t "$title" -Y "$year" -n "$track" -G "$genreid" "$f"

I apologize if I somehow missed this info, did not see any tools listed that make use of the library.

There is not as far as I am aware, but I do have a little CLI utility that uses it myself. It only supports a single usecase that I sometimes have myself, hence I have not published it.

Thanks for the response. I wonder if I could extend the CLI utility you wrote to write to my tags. I would be very interested in it to use as an example that I could extend to do what I need.

Sure! Here you go: tag-tool.zip

Just saw this issue -- for my own purposes, I wrote this tool: https://github.com/AndrewRadev/id3-json. But it makes some specific choices I've described in the "Quirks" section.

Sure, check mine out: https://github.com/randoragon/rsid3
It's in alpha, I'm in the process of writing tests. But in personal use I find it to already be quite capable.

https://github.com/blackout358/editag


Lexical.Localization

Adds a localization class library.

Okey. And it looks like github become aware of the second commit just now.

Thanks, @tagcode, for making the additional change. I'll merge your PR now.

Thanks!


Redirect URL ndk to a fork for the moment

With the consensus of @lvaccaro I update the version of ndk to the 0.10.0 of lightning
Now @darosior you have your fix with the new ndk on the master
Fixes #98

Closed #100 by #101


Make unfs and dns optional

Add :dns_disabled
Disable DNS/HTTP proxy altogether by setting :dns_disabled: true in ~/.dinghy/preferences.yml, or by passing --no-dns flag on CLI. Note that disabling DNS will force HTTP proxy to be disabled.
Add :unfs_disabled
See https://github.com/codekitchen/dinghy/pull/232
Display services as disabled
This helps to differentiate crashed services from disabled services. Uses contributions from https://github.com/codekitchen/dinghy/pull/232.
Example:
$ ./bin/dinghy status
   VM: running
  NFS: running
 FSEV: disabled
  DNS: disabled
PROXY: disabled

Your environment variables are already set correctly.

Fix fsevents_disabled reset issue
When :fsevents_disabled: true in ~/.dinghy/preferences.yml, after running dinghy create or dinghy up, that value will be reset to false. Preferences#update was being passed {fsevents_disabled: !fsevents, ... }, where fsevents returns a FseventsToVm object (thus it is trivially truthy).

This looks reasonable, thanks. I'm curious what the use case is though? From my perspective it seems like if you don't want the DNS or UNFS enabled you'd be better off just using Docker for Mac, so I must be missing a use case.
Also, are you using something else in place of UNFS where the fsevents forwarder still makes sense to run? It was designed pretty specifically around how the UNFS sharing works, so I'm not sure it makes sense to run fsevents if unfs is disabled, but maybe it works well enough with some other fs sharing solution?

This looks reasonable, thanks. I'm curious what the use case is though? From my perspective it seems like if you don't want the DNS or UNFS enabled you'd be better off just using Docker for Mac, so I must be missing a use case.

Also, are you using something else in place of UNFS where the fsevents forwarder still makes sense to run? It was designed pretty specifically around how the UNFS sharing works, so I'm not sure it makes sense to run fsevents if unfs is disabled, but maybe it works well enough with some other fs sharing solution?

For DNS, the use case is to use https://github.com/FreedomBen/dory instead, which has built-in integration with dinghy and will also work on Linux and Docker for Mac.
For UNFS, the intention is to make it possible to use other FS sharing solutions, which may or may not have better performance than UNFS. It is currently not possible to experiment.
As far as I can tell, fsevents_to_vm is still useful for other NFS solutions, e.g. using macOS nfsd as the server.
Regarding Docker for Mac, for my application the performance of NFS is still superior to their volume mounting solution, and I have found dinghy to be the most stable option for using NFS and Docker.

Cool, sounds reasonable. If you do experiment with using the OS built-in NFS server, be careful of the security implications, since it doesn't listen on just the virtual networking interface like dinghy's unfs3 solution does. Thanks for the PR.


get_input_dir() skips files with invalid XML and logs a warning instead of raising an error

Sample output:


Use lastest git from brew

Apple Git is from Xcode, it is older. I want to use newer version, so I exec brew install git.
But now the git in the brew will not work. The PATH of xcenv is front of /usr/local/bin:
$ echo $PATH
/Users/whirlwind/.rvm/gems/ruby-2.4.1/bin:/Users/whirlwind/.rvm/gems/ruby-2.4.1@global/bin:/Users/whirlwind/.rvm/rubies/ruby-2.4.1/bin:/Users/whirlwind/.xcenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/whirlwind/.rvm/bin

Blacklisting git shims should help https://github.com/xcenv/xcenv#xcenv_do_not_shim_list.

great


library "libGLES_mali.so" not found when running arm_compute_benchmark

Output of 'strings libarm_compute.so | grep arm_compute_version':
arm_compute_version=v18.05 Build options: {'embed_kernels': '1', 'os': 'android', 'opencl': '1', 'neon': '1', 'validation_tests': '0', 'benchmark_tests': '0', 'extra_cxx_flags': '-fPIC', 'arch': 'arm64-v8a'} Git hash=e2542c9f35ca427286822cd0c9296f49914f78b0
Platform:
Android
Operating System:
Ubuntu 14.04

Hi,
I'm trying to run arm_compute_benchmark on an Android phone with mali GPU supported, follow the steps provided in https://arm-software.github.io/ComputeLibrary/latest/tests.xhtml#writing_tests.
But get following error:
WARNING: linker: /data/local/tmp/arm_compute_benchmark: unsupported flags DT_FLAGS_1=0x8000000
Can't load libGLES_mali.so: dlopen failed: library "libGLES_mali.so" not found
Can't load libmali.so: dlopen failed: library "libmali.so" not found
Couldn't find any OpenCL library.
terminating with uncaught exception of type cl::Error: empty
Aborted
I tried following solutions:

Move /vendor/lib64/egl/libGLES_mali.so to current folder(/data/local/tmp/), create a symbol link for libmali.so;

Rebuild Compute library and arm NN without openCL;

But it still doesn't work, shows the same error message.
By the way, the UnitTest of ARM NN works fine, without error.
I think both of them(arm_compute_benchmark and ARM NN unit test) depended with  libGLES_mali.so, but the result shows different.

It works only if I change following line in OpenCL.cpp:
static const std::vectorstd::string libraries{ "libOpenCL.so", "libGLES_mali.so", "libmali.so" };
to a complete path such as:
static const std::vectorstd::string libraries{ "/data/local/tmp/libGLES_mali.so"};

Hi @htjacky
The reason why the change you made in OpenCL.cpp works is that you have given the absolute path to the library. In order to make it work without that change, you need to specify your libraries locations using:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<path_to_libraries>

In your case:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/vendor/lib64/egl/

Hi @mdigiorgio
It's fixed with your suggestion, thanks so much!

Glad to hear that, you are very welcome.

Hello,
Can u plz tell me where exactly past this:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/vendor/lib64/egl/
I just started a course in android, I tried to past it in Terminal but it still every time show me the same error u had??!!
I am using mac big Sur


canon-cups-ufr2 5.70 prints blank pages for Canon MF743CDW

Describe the bug
When trying to print using the canon-cups-ufr2 print driver version 5.70, no pages are output, and the printer job log (printer web UI, not CUPS) shows the job succeeding, but with zero pages.  I believe it's due to a segfault in cnrsdrvufr2, the binary which converts to the ufr2 language the printer understands
Steps To Reproduce
Steps to reproduce the behavior:

Install canon-cups-ufr2
Add network printer to CUPS, using the manufacturer Canon, and model MF743CDW UFR II
Try to print anything

Expected behavior
Print output
Screenshots
N/A
Additional context
As a workaround, I enabled IPP and Mopria on the printer web interface, and added the printer to CUPS at the url ipp://<my_printer_address>/ipp/print and selected the driver Canon->IPP Everywhere, which allows me to print with less functionality (the two-sided printing doesn't seem to be supported).
I also tried updating the driver to 5.90, but that version has the same problem.
Notify maintainers
@lluchs
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
$ nix-shell -p nix-info --run 'nix-info -m'
 - system: `"x86_64-linux"`
 - host os: `Linux 6.6.25, NixOS, 24.05 (Uakari), 24.05.20240406.ff0dbd9`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.2`
 - nixpkgs: `/etc/nixpath/nixpkgs`

Add a :+1: reaction to issues you find important.

I've tried setting enable dontStrip and separateDebugInfo, but the package uses a builtin set of scripts to compile, and these values seem to have no effect.
As such, when I try to use gdb, I have no useful symbols and can't figure out what's going wrong.  strace hasn't been helpful either...

I have an MF644CDW, doesn't even print now.
Using the same packages. It used to print in the past, but now nothing at all.

I think I've found a solution, at least for my problem.
Using the CARPS2 drivers instead of UFR 2 seems to successfully print pages that are not blank.

The usual reason for the driver not working in NixOS is that some files aren't where the driver expects them.
Did you check whether printing works from another distribution? If so, try running something like opensnoop from bcc(-tools) to see which files the driver opens on the working distribution and compare the output on NixOS.

I ran into the same issue with my MC750 series printer. Black and white printing worked fine for me, but not color.
I was able to figure out what caused the issue and fix it.
In the README file included with the driver, it mentions that color printing may require libjpeg. Additionally, libgcrypt may be required for certain printers/features.

To fix this issue, two things need to be done. First, the above two libraries must be added. Second, dontPatchELF = true needs to be set. This prevents patchelf --shrink-rpath from being called and is necessary because the driver binaries use dlopen to load the libraries at runtime rather than specifying them in DT_NEEDED. As a result, patchelf --shrink-rpath, not knowing they are needed, will remove the libraries from the RPATH, causing dlopen to be unable to find them.
Here's a PR with my fix which also updates the driver to its latest version -- 6.00: https://github.com/NixOS/nixpkgs/pull/332213

Thank you, @dan-smetana !


No validation reassessment against changes in tables

Problem description
After uploading a file to the ODE, if you try to make changes against validation rules (for example: adding text to a column where only numbers are allowed) the cell is higlighted in yellow as a "Warning indicator". In this case, the user is allow to type whatever the use wants and I think that's OK as long as there is an automatic reassessment of data to inform the user that there are errors (validation only occurs when uploading the file).
On the other hand, it is not possible to click on the button to re-run validation manually

Steps to reproduce it

Open the ODE.
Upload tabular data.
Try to add text in an integer column, remove text from a cell or type a number on a text cell (cell will be highlighted in yellow).
Wait to see if data is validated after changes.
Click Validate.

Suggested solution

The ODE should allow the user to revalidate data. This can be done in an automatic way or by manually clicking on the Validate button.

See this issue in connection to issue #348

The ODE seems to reassess validation when the user changes the type of data on the metadata panel.
Steps to reproduce it

Open the ODE.
Go to ADD---FILE (open a tabular data file)
Click on the METADATA button (top menu of the datagrid).
Go to Schema section.
Change the column type.

The ODE will reassess validation

We need to document this (add it to the user guide)


Add a wiki: Final Fantasy Wiki

An anonymous user has submitted a new wiki via our submission form.
Link to origin wiki: https://finalfantasy.fandom.com/
Link to destination (independent) wiki: https://finalfantasywiki.com

Declined, as there is a significant content gap here (>47,000 articles vs ~600)


LOG_LEVEL defines collision

At log_common.h we have defined:
#define LOG_LEVEL_DEBUG    (0)
#define LOG_LEVEL_INFO     (1)
#define LOG_LEVEL_WARN     (2)
#define LOG_LEVEL_ERROR    (3)
#define LOG_LEVEL_CRITICAL (4)
#define LOG_LEVEL_NONE     (5)

LOG_LEVEL.. names are very common and I have redefinition issues when another than NibBle logger is used.
Because its internal NibBle logger, proposed to use some internal names like:
BLE_LOG_LEVEL.. or NIM_BLE_LOG_LEVEL..

This file is maintained upstream, this issue would be better to bring up there.

Created. Lets wait the answer:
https://github.com/espressif/esp-nimble/issues/49

This will be resolved when updated by espressif.


Update .gitignore

Remove all the unused spaces from the code.

Thank you for using this repo and your suggestions to remove the spaces from the gitignore file. Closing this PR without merging as we intentionally left those in for separation and readability.


Running zarf connect git uses 100% CPU

Environment
Device and OS: MacBook Pro MacOS Ventura 13.2
App version: v0.24.1
Kubernetes distro being used: Rancher Desktop (Moby) + Kind k8s cluster @ v1.24.7
Other:
Steps to reproduce

Run zarf connect git
Note CPU at 100% in Activity Monitor

Expected result
Creating a tunnel to Gitea or other services in cluster should not use 100% CPU.
Actual Result
zarf process uses 100% CPU every time.
Visual Proof (screenshots, videos, text, etc)

Severity/Priority
Additional Context

@dsmithbauer are you still seeing this as of v0.26.2? Tested with @Noxsios and saw 6% and 10% CPU usage on Linux and macOS respectively.

Sorry for the delay. I took some time to retest with the latest Zarf v0.26.4 version today. Unfortunately, I'm still seeing the behavior.

Same configuration as before

Rancher Desktop (Moby) v1.8.1 /w k8s disabled
Clean/empty Kind Cluster v1.24.7
zarf init (v0.26.4 ) with Yes to all options
zarf connect git

Let me know if you require any additional information.

Hmm adding this to a future milestone for some more investigation

Reproduced in 0.30.1 on WSL2. let me see if I can profile it.

Hi! Yes, this is a problem. I ran pprof on the code and noticed: runtime.Gosched() called in a loop is the problem. I removed it and zarf functioned normally (and the tunnel still worked). I've got a fix to test.


miss_feature--PDI--Trace_for_PDI_errors

In GitLab by @croussel on Feb 27, 2017, 16:48
We should add a trace for PDI:

The macro PDI_handle_err should used LINE  /  FILE preprocessors directives to print where an error occurs
An internal variable for depth should be added that by default = 0 and that gets increased

@jbigot  what do you think?

In GitLab by @croussel on Jun 6, 2017, 18:59
I understand that specific APIs exist for instance the GNU backtrace. I have seen also some way to handle errors in general (kind of try-catch-..finally) that are provided by libex for instance or solution based on setjump/longjump and etc...
In fact I was thinking of something really basic and that adds "friendly information" for the user.
For instance, a compile verbosity level option (debug/warning/error) similar the one find in FTI that can be combined with a PDI_message(VERBOSE_LEVEL,...) that prints message when the threshold is reached.
Using the following C99 macro (  __func__, __LINE__, __FILE__ ) we could add information at different places.
For instance,

wrap PDI_make_err inside a variadic macro that prints those information first, before the error message i.e. something like #define PDI_make_err(...) PDI_message(ERR_LEVEL); PDI_function_make_err(__VA_ARGS__);
insert a inside each PDI_handle_err(callstatus, free_stamp) a PDI_message(DBG_LEVEL) in order to show where we jump in case of errors and where we do not jump but the data is unavailable.
and ...etc.

I am suggesting an option this is enabled during compile time to avoid the additional run-time cost required to check the verbosity level.
This does not solve much but at least we could follow/see some unexpected behaviour that are currently not obvious.

closed

What you suggest provides friendly info for the PDI developper mostly. The PDI user typically doesn't really care where in PDI an error occured

not sure about that. Basically if I understand correctly, what you want to do is to print a stack-trace.
In that case, there are dedicated APIs for that. The version that calls abort should print a stack-trace in most cases anyway.


App Does Not Compile

 Issue by commonsguy
Sunday Apr 14, 2019 at 19:41 GMT
Originally opened as https://github.com/googlesamples/android-SharingShortcuts/issues/2

Steps to Reproduce:

Clone the repo
Attempt to build the app

Expected Results: for the app to build
Actual Results: the app fails with compile errors on references to Intent.EXTRA_SHORTCUT_ID, as that is new to Android Q but the Application module's compileSdkVersion is 28
Workaround: change Application/build.gradle to use compileSdkVersion 'android-Q'

I think this was addressed and fixed in the other repo (but wasn't closed). Let me know if this is still an issue.


IndexError: list index out of range

Seeing this when i try to do hitcount.
  File "/usr/share/python/graphite/local/lib/python2.7/site-packages/flask/app.py", line 1988, in wsgi_app
    response = self.full_dispatch_request()
  File "/usr/share/python/graphite/local/lib/python2.7/site-packages/flask/app.py", line 1641, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/usr/share/python/graphite/local/lib/python2.7/site-packages/flask/app.py", line 1544, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/usr/share/python/graphite/local/lib/python2.7/site-packages/flask/app.py", line 1639, in full_dispatch_request
    rv = self.dispatch_request()
  File "/usr/share/python/graphite/local/lib/python2.7/site-packages/flask/app.py", line 1625, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/usr/share/python/graphite/local/lib/python2.7/site-packages/graphite_api/app.py", line 413, in render
    series_list = evaluateTarget(context, target, data_store)
  File "/usr/share/python/graphite/local/lib/python2.7/site-packages/graphite_api/app.py", line 513, in evaluateTarget
    result = evaluateTokens(requestContext, tokens, data_store)
  File "/usr/share/python/graphite/local/lib/python2.7/site-packages/graphite_api/app.py", line 523, in evaluateTokens
    return evaluateTokens(requestContext, tokens.expression, data_store)
  File "/usr/share/python/graphite/local/lib/python2.7/site-packages/graphite_api/app.py", line 531, in evaluateTokens
    arg, data_store) for arg in tokens.call.args]
  File "/usr/share/python/graphite/local/lib/python2.7/site-packages/graphite_api/app.py", line 523, in evaluateTokens
    return evaluateTokens(requestContext, tokens.expression, data_store)
  File "/usr/share/python/graphite/local/lib/python2.7/site-packages/graphite_api/app.py", line 537, in evaluateTokens
    ret = func(requestContext, *args, **kwargs)
  File "/usr/share/python/graphite/local/lib/python2.7/site-packages/graphite_api/functions.py", line 3206, in hitcount
    buckets[start_bucket].append(
IndexError: list index out of range

fixed with PR #40


Is there any way to cache the installed python version for multi-user environment?

Is there any way to cache installed python version for multi-user environment?

---
Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/31525937-is-there-any-way-to-cache-the-installed-python-version-for-multi-user-environment?utm_campaign=plugin&utm_content=tracker%2F282009&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F282009&utm_medium=issues&utm_source=github).

@minhoryang What does cache mean in your question? Basically I don't recommend you to share built Python installations since there're hardcoded paths in scripts and executables. Just copying the built Python to different path will make it corrupted.

How would you go about recreating python environment (including virtualenv) on a remote machine? What files I could commit in git history so that a remote developer (assume sufficient competency with pyenv) can recreate the python environment on a remote machine for development?

I think it would be great if we had a small HOWTO in wiki or README.md about recreating pyenv. For example, the tutorial could start with an empty directory and pynev (and other plugins like pyenv-virtualenv if necessary) and shows how the same development environment can be recreated on another machine.
I would be more than happy to write one later (mid-May) if I you could help me with the magic incantations :)

I think it would help to have a better understanding of your use-case. Are you trying bundle a Python installation with a package for an end-user, so they don't need to have Python installed in order to use the application? Or are you trying to share a consistent development environment with other users? I think you're going to have a lot of issues using git for this task. Git doesn't even store permissions correctly.
If you're trying to do the latter (share a dev environment), Vagrant is well-suited for the task. You can start with a Debian or Ubuntu base, install pyenv and everything exactly how you'd like, then package it and share it on the Atlas repo. That will be the easiest option. If you don't need an entire ~500mb Debian/Ubuntu base, with a little more work you may be able to set it up on an Alpine base.

@brbsix
thanks for chiming in!
Of course, I am not suggesting to commit any pyenv files or directories. I am merely curious how to recreate python environment? The simplest use case is when you are starting on a new machine and want to develop a python codebase. The past you is asking what information you need about python version (and perhaps virtualenv) that will help you start up and running.
Assume basic setup without vagrant/docker

Okay, so basically I keep a list of required modules in requirements.txt and then create a virtualenv for the project and do pip install -r requirements.txt, that's it?
Any pointers/guides on this?
@yyuu : feel free to close the issue if this seems out of scope of pyenv :)


Only check validity of S3 region if not using custom endpoint

The current S3 implementation was expanded in #1512 to allow specifying a custom endpoint. Currently, this only allows talking to a custom S3 implementation with one of a few hardcoded regions.
This PR skips the check to validate the region if a custom S3 endpoint is provided, so that custom regions can be used as well.

:+1:

Current coverage is 51.14%

Merging #1604 into master will decrease coverage by -6.71% as of dbb6e28

@@            master   #1604   diff @@
======================================
  Files          122     122
  Stmts        10663   10663
  Branches       841     748    -93
  Methods          0       0
======================================
- Hit           6169    5454   -715
+ Partial        841     748    -93
- Missed        3653    4461   +808

Review entire Coverage Diff as of dbb6e28

Uncovered Suggestions

+0.30% via .../driver/s3-aws/s3.go#732...763
+0.29% via .../driver/s3-aws/s3.go#268...297
+0.22% via .../driver/s3-aws/s3.go#884...906
See 7 more...

Powered by Codecov. Updated on successful CI builds.

thank you @ArdaXi
LGTM


Remove Service Principal identities

Description
Removes the use of various service principals in favor of newly introduced managed workload identity on the pctasks-server pod and argo workflow pods. The role assignments made to the previous identities have been preserved with the new.
To fully test with the absence of client secrets, remove from your local values.tfvars file (those fetched from KV) to match the same that were removed from staging/main.tf here (you can use the --skip-fetch-tf-vars flag on deploy to do this)

Still verifying a few things, but bb1b33c264c1efba37f494e7c0b56faa5e81cf5d has the changes needed to get Azure Batch working with managed identities.

Need to investigate some warnings from the orchestrator workflow pod:
wait time="2024-05-23T13:45:14.274Z" level=warning msg="Non-transient error: pods \"wkflw-naip-ingest-collection-ac731725-19ab-40e7-890d-e571ec89r8\" is forbidden: User \"system:serviceaccount:pc:pctasks-server\" cannot patch resource \"pods\" in API group \"\" in the namespace \"pc\": Azure does not have opinion for this user."
wait time="2024-05-23T13:45:14.274Z" level=error msg="executor error: pods \"wkflw-naip-ingest-collection-ac731725-19ab-40e7-890d-e571ec89r8\" is forbidden: User \"system:serviceaccount:pc:pctasks-server\" cannot patch resource \"pods\" in API group \"\" in the namespace \"pc\": Azure does not have opinion for this user."

[...]

wait time="2024-05-23T13:45:41.355Z" level=warning msg="failed to patch task result, falling back to legacy/insecure pod patch, see https://argo-workflows.readthedocs.io/en/release-3.5/workflow-rbac/" error="workflowtaskresults.argoproj.io is forbidden: User \"system:serviceaccount:pc:pctasks-server\" cannot create resource \"workflowtaskresults\" in API group \"argoproj.io\" in the namespace \"pc\": Azure does not ha
wait time="2024-05-23T13:45:41.360Z" level=warning msg="Non-transient error: pods \"wkflw-naip-ingest-collection-ac731725-19ab-40e7-890d-e571ec89r8\" is forbidden: User \"system:serviceaccount:pc:pctasks-server\" cannot patch resource \"pods\" in API group \"\" in the namespace \"pc\": Azure does not have opinion for this user."
wait time="2024-05-23T13:45:41.360Z" level=error msg="executor error: pods \"wkflw-naip-ingest-collection-ac731725-19ab-40e7-890d-e571ec89r8\" is forbidden: User \"system:serviceaccount:pc:pctasks-server\" cannot patch resource \"pods\" in API group \"\" in the namespace \"pc\": Azure does not have opinion for this user."
wait time="2024-05-23T13:45:41.365Z" level=warning msg="failed to patch task result, falling back to legacy/insecure pod patch, see https://argo-workflows.readthedocs.io/en/release-3.5/workflow-rbac/" error="workflowtaskresults.argoproj.io \"wkflw-naip-ingest-collection-ac731725-19ab-40e7-890d-e571ec89r8\" is forbidden: User \"system:serviceaccount:pc:pctasks-server\" cannot patch resource \"workflowtaskresults\" in A
wait time="2024-05-23T13:45:41.369Z" level=warning msg="Non-transient error: pods \"wkflw-naip-ingest-collection-ac731725-19ab-40e7-890d-e571ec89r8\" is forbidden: User \"system:serviceaccount:pc:pctasks-server\" cannot patch resource \"pods\" in API group \"\" in the namespace \"pc\": Azure does not have opinion for this user."
wait time="2024-05-23T13:45:41.369Z" level=error msg="executor error: pods \"wkflw-naip-ingest-collection-ac731725-19ab-40e7-890d-e571ec89r8\" is forbidden: User \"system:serviceaccount:pc:pctasks-server\" cannot patch resource \"pods\" in API group \"\" in the namespace \"pc\": Azure does not have opinion for this user."
wait time="2024-05-23T13:45:41.370Z" level=fatal msg="pods \"wkflw-naip-ingest-collection-ac731725-19ab-40e7-890d-e571ec89r8\" is forbidden: User \"system:serviceaccount:pc:pctasks-server\" cannot patch resource \"pods\" in API group \"\" in the namespace \"pc\": Azure does not have opinion for this user."

Might need to do some Kubernetes RBAC stuff.

Many of our workflows contain environment blocks requesting an AZURE_CLIENT_ID, AZURE_TENANT_ID and AZURE_CLIENT_SECREt (e.g. here)
We'll need to somehow adjust those. I think these secrets were either deleted from the key vault or set to "", which results in tasks getting those environment variables being set to "" and DefaultAzureCredential() failing.
I think we'll need to update all those workflows to not reference an Azure identity (explicitly or through secrets). Instead, we'll just have an Azure Identity that's part of the task execution context (the MI assigned to the nodes, in the case of Azure Batch) that will just be there, available to the tasks.
We'll need to figure out how to manage role assignments for these managed identities. For now, it's probably best to stick them in the terraform.

We'll need to figure out how to manage role assignments for these managed identities. For now, it's probably best to stick them in the terraform.

I'm going back and forth on how to handle roles assingments for the identity used in tasks, but I do think it's best to do that here. The annoying thing will be having to update the terraform to add the new role assignment for any new needed roles (typically data in a new storage account). But if we have the Managed Identity used for tasks in terraform (next to the batch account, which seems to make the most sense) then this is probably the best we can do.
Here's a snippet that I'm using to list the role assignments for our current Service Principal, and generate the equivalent terraform.
I'll clean that up slightly (removing redundant roles) and will commit it here.

import itertools

import subprocess
import json

roles = json.loads(
    subprocess.check_output([
        'az',
        'role',
        'assignment',
        'list',
        '--all',
        '--include-inherited',
        '--include-groups',
        '--subscription',
        "AI for Earth Data Sets",
        '--assignee',
        "a1efbce7-e5c3-4b04-a4c5-cd4fea395a58"
    ])
)

template = """\
resource "azurerm_role_assignment" "task-assignments-{shortrole}" {{
  scope                = each.key
  role_definition_name = "{role}"
  principal_id         = azurerm_user_assigned_identity.pctasks.principal_id

  for_each = toset(
    {scopes}
  )
}}
"""
print(template)

key = lambda x: (x["roleDefinitionName"], x["scope"])

for role, v in itertools.groupby(sorted(roles, key=key), key=lambda x: x["roleDefinitionName"]):
    v = list(v)
    print(template.format(
        role=role,
        scopes=",\n    ".join([f'"{x["scope"]}"' for x in v]),
        shortrole=role.replace(" ", "-").lower()
    ))

https://github.com/microsoft/planetary-computer-tasks/pull/294/commits/9c09d7a3c70a97274393969ee897ffb5f8b7cf3e removed the service principal creds from all the dataset workflows.
I didn't update those workflows in the test or prod Cosmos databases. We can't do prod until this is deployed to prod.

CD failure in https://github.com/microsoft/planetary-computer-tasks/actions/runs/9274920882/job/25519644600:
│ Error: loading Role Assignment "/subscriptions/4a8dce3e-591c-4c74-a946-a41ff728a462/providers/Microsoft.Authorization/roleAssignments/75af845e-dbb6-f70a-126c-156644e2805c": authorization.RoleAssignmentsClient#GetByID: Failure responding to request: StatusCode=403 -- Original Error: autorest/azure: Service returned an error. Status=403 Code="AuthorizationFailed" Message="The client '6b26b88f-ddcc-455c-aeae-ac412fa35aae' with object id '6b26b88f-ddcc-455c-aeae-ac412fa35aae' does not have authorization to perform action 'Microsoft.Authorization/roleAssignments/read' over scope '/subscriptions/4a8dce3e-591c-4c74-a946-a41ff728a462/providers/Microsoft.Authorization/roleAssignments/75af845e-dbb6-f70a-126c-156644e2805c' or the scope is invalid. If access was recently granted, please refresh your credentials."

during the terraform plan. The roles are there, but the identity running that can't read them. I'll manually assign that identity permission to get those role (but not to write them? Not sure yet)
az role assignment create --role "Managed Identity Contributor" --assignee "6b26b88f-ddcc-455c-aeae-ac412fa35aae" --scope "/subscriptions/4a8dce3e-591c-4c74-a946-a41ff728a462/providers/Microsoft.Authorization/roleAssignments/75af845e-dbb6-f70a-126c-156644e2805c"

Also updated the tfvars to remove the use of undeclared variables:
./bin/write_tfvars -k pc-test-deploy-secrets -s pctasks-test-tfvars-staging -f terraform/staging/values.tfvars
Will test again with the deployment for https://github.com/microsoft/planetary-computer-tasks/pull/291.

This eventually succeeded in https://github.com/microsoft/planetary-computer-tasks/actions/runs/9279249310.


aaa

Hi @ishanrc-test. Thanks for your PR.
I'm waiting for a ishanrc member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

/ok-to-test

/ok-to-test


The link on the toolbar always placed first

Hello, there's a question. Why is the link on the toolbar always placed first ,How should I solve it.

new version 1.1.9

新版本 1.1.9

The link button on the top toolbar has been fixed, but the Bubble menu has not been fixed yet

新版本 1.1.9

The link button on the top toolbar has been fixed, but the Bubble menu has not been fixed yet

fix of it in v1.1.10

Fixed in version v.1.1.10 🎉🎉🎉
Okay, thank you very much🎉🎉🎉


updated update-version-all.sh script to involve old versions != *-SNA…

…PSHOT

Merged into 6.4.x (https://github.com/droolsjbpm/droolsjbpm-build-bootstrap/commit/2496c13bd7bc2e02ac76ab2461fa2fbb3eff346f).


Dark text on a dark background has a light border on Linux with AA off

See the following image for an example of the issue:
https://raw.githubusercontent.com/QuantumBadger/Speedy2D/81679866f7448ea8276412995f98c2cda1e2dc7a/test/assets/expected_images/test_basic_text_black_background.png
The text colour and background are set to black, but a thin white border is visible. This was discovered on Linux, with antialiasing turned off.

Right now I can only reproduce this issue in the unit tests. In an actual application it seems to be fine.

Hitting this!
Curiously, it is not white background, it is actually transparent!
Here's a zoomed-in screenshot of my application on top of two crabs.

I think what happens here is that the alpha itself is blended. The followind diff uses "premultiplied alpha" trick, which seems to fix the issue for me:
diff --git a/src/font_cache.rs b/src/font_cache.rs
index 97beb05..9b5dd6e 100644
--- a/src/font_cache.rs
+++ b/src/font_cache.rs
@@ -525,9 +525,9 @@ impl BitmapRGBA
     {
         glyph.draw(|x, y, alpha| {
             let start = (4 * (self.size.x * y + x)) as usize;
-            self.data[start] = 255;
-            self.data[start + 1] = 255;
-            self.data[start + 2] = 255;
+            self.data[start] = (alpha * 255.0).round() as u8;
+            self.data[start + 1] = (alpha * 255.0).round() as u8;
+            self.data[start + 2] = (alpha * 255.0).round() as u8;
             self.data[start + 3] = (alpha * 255.0).round() as u8;
         })
     }
diff --git a/src/glbackend.rs b/src/glbackend.rs
index 22c1917..07bc7d7 100644
--- a/src/glbackend.rs
+++ b/src/glbackend.rs
@@ -56,6 +56,7 @@ pub mod constants

     pub const GL_SCISSOR_TEST: GLenum = glow::SCISSOR_TEST;

+    pub const GL_ONE: GLenum = glow::ONE;
     pub const GL_SRC_ALPHA: GLenum = glow::SRC_ALPHA;
     pub const GL_ONE_MINUS_SRC_ALPHA: GLenum = glow::ONE_MINUS_SRC_ALPHA;

diff --git a/src/glwrapper.rs b/src/glwrapper.rs
index dde5c29..0eb476e 100644
--- a/src/glwrapper.rs
+++ b/src/glwrapper.rs
@@ -1032,7 +1032,7 @@ impl GLContextManager
             GLBlendEnabled::Enabled(mode) => match mode {
                 GLBlendMode::OneMinusSrcAlpha => self.with_gl_backend(|backend| unsafe {
                     backend.gl_enable(GL_BLEND);
-                    backend.gl_blend_func(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+                    backend.gl_blend_func(GL_ONE, GL_ONE_MINUS_SRC_ALPHA);
                 })
             },

(not that I have any idea of what I am doing here)

Thank you for the pointers @matklad, that makes sense! I've spent a while looking into this and I think we can achieve the same thing using glBlendFuncSeparate(), which avoids the need to premultiply everything (which would include user textures, shapes, etc).

Now fixed in v1.12.0, thanks again @matklad!

Yup, tested 1.12.0, works like a charm, thanks for a quick release!


From v0.27, --forgeFile and --forgeString can't be appeared together. Can still do it in v0.26 .

I would like to merge samples from different packages. For some packages, I want to select tens of individuals, so I use a file; while for others, I only need to select a few of them, and I can use string. I prefer to create a different file/string for different packages.

Solved in #192. Will be part of the next release.


fix(ui): change invoice status color scheme

Description:
Improve payment request  status color scheme

Green is paid
Orange is not paid
Red is expired

Motivation and Context:
Currently it's hard to distinguish between states based on color

How Has This Been Tested?

Screenshots (if appropriate):

Types of changes:
Enhancement

Checklist:

[x] My code follows the code style of this project.
[x] I have reviewed and updated the documentation accordingly.
[x] I have read the CONTRIBUTING document.
[ ] I have added tests to cover my changes where needed.
[ ] All new and existing tests passed.
[x] My commits have been squashed into a concise set of changes.

Coverage decreased (-0.02%) to 21.139% when pulling d75f27a7ec5a455a5b562d5199b06237e9a8a198 on korhaliv:fix/invoice-status-color into ac985779aea4a3ca674d458cd2cddeb15859b083 on LN-Zap:next.


Updates to test_global_control notebook

I have been working on this to try to regenerate the figures.

[x] Allow forcing data set to be used from path.
[x] Line-up output labels
[x] Base plot
[ ] Figure 5
[ ] Figure 4a
[ ] Figure 4b
[ ] Rest

I'm having problems getting Figure 5 using the forcings data alone has some problems:
The pred data set is expected to have S_xscale but this isn't in forcings data set. Any ideas @raehik

complete in #97 with a couple of the changes here added back manually ad05ab0b265e806c6e8c79c4d0859e832dfbb870


lock/cli: fix broken teuthology-lock --summary for py3

Convert None type to empty str in sorted key lambda
The usage of .format method is also adjusted for empty
machine type values
Fixes: https://tracker.ceph.com/issues/45105
Signed-off-by: Kyr Shatskyy<EMAIL_ADDRESS>

thanks for fixing this, Kyr!


Data Assets Visibility or Migration across networks

As per discussion with @alexcos20, Enterprises launch the marketplace on a specific network. However for some scenarios (like high gas fees in ETH) they might have to migrate to a different network to ensure marketplace operates with low transactions costs or high speed. For such scenarios if they arise,
a. How can the marketplace migrate their data assets without manually creating all of them?
b. Is there any way that data assets can be available across networks?

Data asset visibility across networks

This is being handled in Q2 work: for Ocean Market to see data assets across >1 networks at once. The core idea is for Aquarius to cache metadata across chains. multi-repo-issue#67

Migration across networks

This will be handled after the issue above, likely in Q3. The core idea is: easily bridge ERC20 datatokens among the networks. That's in issue multi-repo-issue#94.
There's a workaround for people with data assets on Eth mainnet right now: remove enough liquidity in the old AMM, and then it's kosher to re-publish; if you re-publish without doing this you'll get put into purgatory. Details in the "Prior-Published Datasets / Services" of the  "Ocean's on Polygon" blog.

To answer the questions specifically:

a. How can the marketplace migrate their data assets without manually creating all of them?

Bridge datatokens. See "migration across networks" section above.

b. Is there any way that data assets can be available across networks?

Ocean Market (or any market) see >1 chains at once. Details above.

Given that the questions were answered, and that the actual scope of work is already covered by other issues (referenced here), I am closing this ticket. Please re-open if you deem appropriate.


Missing Sensors for LG WT7800CW Washing Machine

I have the new WT7800CW LG washing machine and can see all of the info in the app (cycle, run time, time left, etc) however in HA I only see 1 device/1 entity and it's Washer Power Off.  Is this too new of a washer for all of the washing machine related sensors to appear?

Please provide more detail about your HA instance (version, OS, etc).
Also look in HA log if there are some errors or warnings and post it here

HAC Version:  core-2021.8.8
OS Version:  6.2
I found this in the HA log
File "/config/custom_components/smartthinq_sensors/sensor.py", line 245, in <module>     ThinQSensorEntityDescription( TypeError: __init__() got an unexpected keyword argument 'native_unit_of_measurement' 2021-09-28 14:01:28 ERROR (MainThread) [homeassistant.config_entries] Error setting up entry LGE Devices for binary_sensor
File "/config/custom_components/smartthinq_sensors/sensor.py", line 245, in <module>     ThinQSensorEntityDescription( TypeError: __init__() got an unexpected keyword argument 'native_unit_of_measurement'

You must upgrade HA to version 2021.9.x, as clearly stated in release note

my sincere apologies


Prune Eclipse Che operator

Signed-off-by: Anatolii Bazko<EMAIL_ADDRESS>Thanks submitting your Operator. Please check below list before you create your Pull Request.

We provide HelmChart for community instead.
Your submission should not

[x] Modify more than one operator
[x] Modify an Operator you don't own
[x] Rename an operator - please remove and add with a different name instead
[x] Modify any files outside the above mentioned folders
[x] Contain more than one commit. Please squash your commits.

Remember that you can preview your CSV here.
--
1 If you feel your Operator does not fit any of the pre-defined categories, file an issue against this repo and explain your need
2 For more information see here

/merge possible

/merge possible

/merge possible


mark_safe() the output of template tags

Django 1.9's simple_tag wraps tag output in conditional_escape,
therefore we have to explicitly mark the return value of render_bundle
as safe.
https://docs.djangoproject.com/en/1.9/releases/1.9/#simple-tag-now-wraps-tag-output-in-conditional-escape

Thanks

Not at all, thank you!


Visually emphasise top (latest?) post on threads

@JosephMcArthur
Something like this?

Should I do the same for topic threads as well?

I think something like this is certainly worth a shot.
And yes, lets have it for topics, everything really.
Joseph McArthur
Assistant Director: Right to Research Coalition ( http://righttoresearch.org )
Director / Founder: Open Access Button ( http://openaccessbutton.org )
Twitter: @Mcarthur_Joe ( https://twitter.com/Mcarthur_Joe )
Skype: joseph_mcarthur
On Wed, Jun 17, 2020 at 2:17 PM, Sophy <<EMAIL_ADDRESS>> wrote:

@ JosephMcArthur ( https://github.com/JosephMcArthur )
Something like this?
Screenshot 2020-06-17 at 14 16 56 (
https://user-images.githubusercontent.com/6668406/84902839-3d22ba80-b0a5-11ea-80c2-b6f5b80ffbcd.png
)
Should I do the same for topic threads as well?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub (
https://github.com/sparcopen/infrastructure/issues/44#issuecomment-645367652
) , or unsubscribe (
https://github.com/notifications/unsubscribe-auth/ABFZMZ2GKX3H3U6WPAW7LQLRXC7AFANCNFSM4N6VIFMA
).

Which one do you prefer & what elements do you like/dislike?
Option 1
Bold option with red colour block.

Option 2
Conservative & echoing the "About us" infobox in the post pages.


Cache Newstate in payloadbuilding

Describe the feature
currently a payload building job starts with an empty CachedReads.
we can get the StateDiff of the parent block via canonical chain subscription.
this can be used to "pre-load" the CachedReads.
Additional context
No response

Hey, can I take it?


[BUG] Spinal cord mesh rotated at 90 degrees in meshio/napari

Describe the bug
The allen_cord_20um mesh behaves differently to the other meshes. I don't think it's because it's anisotropic. Could also be a meshio (or a napari) bug (but it doesn't happen with other atlases AFAIT)?
To Reproduce

make a copy of 250.obj and annotations.tiff in a local folder
rename the copies to mesh_0.obj and image_0.tiff
copy the python script below to the same local folder.

from pathlib import Path
import napari
import meshio
from tifffile import imread

viewer = napari.Viewer()

scales = [
    [10,10,20], # image 0 has anisotropic scale
]
for i in range(1):
    image_path = Path(__file__).parent / f"image_{i}.tiff"
    image = imread(image_path)
    image = viewer.add_image(image, scale=scales[i], colormap='hsv')

    mesh_path = Path(__file__).parent / f"mesh_{i}.obj"
    mesh = meshio.read(mesh_path)
    points = mesh.points
    cells = mesh.cells[0].data
    surface = viewer.add_surface((points, cells), opacity=0.4)

    print(f"image {i}:")
    print(image.extent.world)
    print(surface.extent.world)

if __name__ == "__main__":
    napari.run()

run the python script in a conda env with napari installed
switch napari to 3d view
the mesh and the image are at 90 degrees to each other

Expected behaviour
The mesh and the image should align with each other.
Log file
Screenshots
If applicable, add screenshots to help explain your problem.

But in paraview it looks reasonable (note the transform in the screenshot is the same as the scale in the example script here)

Computer used (please complete the following information):

OS: macOS Ventura 13.4.1 (22F82) (Apple M2 chip), 16GB RAM

Additional context
I expect running the script above on any other annotation+root mesh combo works fine (I've tested only on allen_mouse_100um though), because the script is a simplification of what I added in https://github.com/brainglobe/brainglobe-napari/pull/31 and that is extensively tested on various (but not all) atlases. Maybe the .obj has some metadata that meshio ignores that the other objs don't, and paraview knows how to deal with that?
Maybe the spinal cord's obj is somehow special

Yea, weird indeed. Starting to wonder whether this is (also?) a paraview bug (that is cancelled out by the spinal cord bug):
Allen Mouse 100um mesh and annotation don't match orientation in paraview, but they do in napari 🤔

I'll look at the raw data next.

Note: don't trust the paraview TIFF reader.


Sync with FreeCompany

Sync category with free company members so you don't need to manually add/remove.

I'll bump this and add a request to sync with linkshells as well.

All social lists are now in Ptrack test (pending merge).


wasm-mutate: Add/Edit/Remove operations for each Wasm section

We should have an add, edit, reorder, and remove mutator for each Wasm section (where it makes sense). This is a tracking issue for each of these things.
In general, removing an entity should be something done optimistically, but which can fail if the entity is referenced in other sections (e.g. if we are trying to remove a global, but a function uses it via global.get or global.set).
Custom Sections

[ ] Add new custom section
[ ] Edit existing custom section

[ ] add bytes
[ ] remove bytes
[ ] edit bytes

[x] Remove custom section
[ ] Move existing custom section

Type Section

[ ] Add new type
[ ] Edit type (if it isn't used)
[x] Remove type
[ ] Reorder types

Import Section

[ ] Add new import
[ ] Edit import name/module
[ ] Edit import kind (if it isn't used)
[x] Remove import
[ ] Reorder imports

Function Section

[ ] Add new function
[ ] Add a parameter (and update the code section as necessary)
[ ] Remove a parameter (and update the code section as necessary)
[x] Remove function
[ ] Reorder functions

Table Section

[ ] Add a new table (if there aren't any tables or bulk memory is enabled)
[ ] Edit an existing table
[x] Remove a table
[ ] Reorder tables

Memory Section

[ ] Add a new memory (if there aren't any memories or multi-memory is enabled)
[ ] Edit an existing memory
[x] Remove a memory
[ ] Reorder memories

Global Section

[ ] Add a new global
[ ] Edit an existing global
[x] Remove a global
[ ] Reorder globals

Export Section

[ ] Add a new export
[X] Rename an existing export
[ ] Edit an existing export to export a different entity
[X] Remove an export

Start Section

[ ] Add a start section (if there isn't one, and there is a function of the right type)
[ ] Change which function is the start function in an existing start section (if there is another of the right type)
[x] Remove the start section

Element Section

[ ] Add a new element segment
[ ] Edit an existing element segment

[ ] Reorder functions in the segment
[ ] Add a new function to the segment
[ ] Remove a function from the segment

[x] Remove an element segment
[ ] Reorder element segments

Code Section
I think our peephole and code motion mutators cover the code section pretty well, at least for the level of granularity that this issue is tracking. I'm sure there is stuff we could improve, but these things can be their own issues.
Data Section

[ ] Add a new data segment
[x] Edit an existing data segment

[x] Reorder bytes within the segment
[x] Add bytes to the segment
[x] Remove bytes from the segment

[x] Remove a data segment
[ ] Reorder data segments

Data Count Section
Not really applicable. More of something we just have to keep up to date based on mutations of the data section.

Most of these removals (and additions) require modifications to the index space which in general can require a whole rewrite of the wasm module, so I think some of those may at least be nontrivial. I've got a branch I started awhile back which implements removing almost all the items here and I just need to finish up the giant match statement to rewrite the code section. I hope to push that up in the near future.

Yes, I was hoping that we could develop a generic function to rewrite the code section with the given renamings and then reuse that function throughout most of these mutators.

Hi all and happy new year !
I have a doubt on the ItemRemoveMutator and I did not find a better way to write it down :(.
Is there a reason to think that every item removal, excepting for Data or Element is semantically equivalent ?
https://github.com/bytecodealliance/wasm-tools/blob/6b8da0ec8a283fe04a8a4d012fedc1abe526bac1/crates/wasm-mutate/src/mutators/remove_item.rs#L37
Thanks in advance

Happy new year! :)
If the other entities are used (e.g. a function is called or exported) then the mutator will return an error. If they are not used, on the other hand, then removing them still preserves semantics.

Add a parameter (and update the code section as necessary)
Remove a parameter (and update the code section as necessary)

This sort of transformation may be made easier if it is preceded by duplicating the type definitions so that each operation and item that refers to a type refers to an unique type definition.

Another transformation that I think could be interesting and which I'm not sure is covered by the issue text here is import-ifying and local-ifying items such as globals and functions. That is replacing something like (import "" "" (global i32)) with (global i32 (i32.const 0)) and vice-versa.
Implementing both transformations could also pose a risk of making it difficult to reach a fixpoint too, though.

Implementing both transformations could also pose a risk of making it difficult to reach a fixpoint too, though.

We only care about fixpoints when reducing, and in that situation we can avoid the problem by only taking mutations that actually reduce the size of the resulting Wasm binary.

(Added a bunch more code-related mutation ideas, in case anyone is following along at home, and is interested in taking a look.)


SyntaxError: Invalid or unexpected token koa=function(a,b,c,d){var e=null;switch(b)https://youtube.com/watch?v=2_vJ54m_agc

Extension
https://www.raycast.com/vimtor/youtube-downloader
Description
When attempting to download a video from YouTube using the Raycast extension, a SyntaxError: Invalid or unexpected token is encountered
Additional Bug Description:
After encountering the SyntaxError: Invalid or unexpected token while attempting to download a video from YouTube using the Raycast extension, another issue arises. When pasting a different video, an error message is displayed indicating that the video cannot be found. However, the extension was previously able to find and process the video within a promised time.
Steps To Reproduce
1.	Install and enable the Raycast extension.
2.	Open a web browser and go to a YouTube video.
3.	Attempt to download the video using the Raycast extension's download feature.
4.	While the video is being processed, an error message appears: "SyntaxError: Invalid or unexpected token koa=function(a,b,c,d){var e=null;switch(b)https://youtube.com/watch?v=2_vJ54m_agc".
5.	Copy a different YouTube video URL.
6.	Paste the new video URL into the Raycast extension to initiate the download.
7.	Instead of successfully processing the new video, an error message is displayed, indicating that the video cannot be found.

Current Behaviour
1.	When attempting to download a video, a SyntaxError: Invalid or unexpected token is encountered, specifically in the koa function with the provided parameters (a, b, c, d).
2.	After encountering the syntax error, when pasting a different video URL, the extension displays an error message indicating that the video cannot be found. This occurs even though the extension was able to process a video successfully within the promised time frame before encountering the error.

Expected Behaviour
1.	The extension should process the video URL without encountering any syntax errors or unexpected token issues.
2.	Upon successfully processing the video URL, the extension should initiate the download process and save the video to the designated location.
3.	If a different video URL is pasted after encountering an error, the extension should be able to handle it correctly and initiate the download process for the new video without reporting that it cannot be found.

Is this happening to you every time you try to download a video? We are using the unofficial YouTube API, and it's not super reliable, so some flakiness is to be expected.

I'm sorry for the long response, but everything seems to be working perfectly fine since the last time I've been using this extension


feat: revise postal code in resume address

Description
The position of postal code in resume address need to be revised, originally, in English resume, the address format is:
<postal code>, address -- city -- state/province, country.
We want to follow English/Spanish convention, by revise the address to be:
address -- city -- state/province, country, <postal code>.
[Optional] Possible Solutions
NA
Acceptance Criteria

revise and address line in resume and put postal code in the end

Todo list
NA

Done.
For English resume:

For Spanish resume:


Audio fallback example

Hi,
Can you make a template that fallsback to audio if video is not supported or tell me how?

You'd need to use the AudioPlayer Interface also and detect that the device doesn't have a screen then play the audio rather than the video. I hope that helps.


Multilayer panels. (Panels inside other panel)

Example: I have search result page with big count of filters. I create sidebar panel, which one include all possible filters. Each filter is separate panel.
So I will get access to panel something like that:
getPanel(SidebarPanel.class).getPanel(SomeFilter.class);
Is it possible to implement such functionality?

I assume it is possible. But double getPanel looks really ugly. I think it will be better do not use such small palels dividing. In your example use only one panel SearchPanel that will be include all filters logic. What do you think?

@Invictum may be this example is not show what I want to say, I will try another one:
Example: I am on shopping cart page with different numbers of items in cart. Each item should have methods:

getTitle()
getDescription()
getColor()
getPrice()
updateCount()
removeItem()
etc.
In this case I would like to create panel for all items in shopping cart, and separate for each item in cart. As for me, this approach can be pretty useful.

In your example I'd prefer to create shopping cart items panel. Because it is much easier to deal with remove or extract data in dto for assertion (list of shopping cart items dto) in scope of single panel.
Example 1: you need to remove some item. How to specify remove criteria? In most cases you need to foreach items and try to check some unique attribite (i. g. title). This is only way how to remove item and you should do the same for multiple panels approach. so what an advantage of multi panels in this case?
Example 2: you need to assert all cart items data. for this you need two lists of dto. For multi panel approach you need to foreach panels and invoke get something methods. The same activity should be performed for complex panel approach (get items elements and collect data for each of them) So where is an advantage of multi panel approach?
But it is still possible to implement it, but I propose following limitations:

make getPanel for panels protected. This will help is avoid ugly page.getPanel().getPanel() chains.
getPanels method should be also implemented on page level.
What do you thing about it?

@eliogrin
How to handle locator root in case of initing panel inside panel?
Example
We have a panel A with base //div[@class]
Let's assume we try to init panel B inside of A. How to determinate root of B? I think there are two options:

easy way - init panel in scope of parent page based on panel B base.
hard way - init panel in scope of panel A (perform panel B element search in scope of A panel).

Maybe you have some ideas about it?

Implemented. Will be available in version 1.0


Converting JSON -> YAML -> JSON errors if timestamp fields are involved

Describe the bug
When converting from JSON to YAML and back again, fields that contain timestamps result in parse failures and errors
To Reproduce
Steps to reproduce the behavior:
❯ cat foo.json
{
    "createdAt": "2023-06-13T20:19:48.531620935Z"
}%

❯ cat foo.json | dasel -r json -w yaml | dasel -r yaml -w json
Error: could not unmarshal data: unhandled scalar node tag: !!timestamp

However, if you write to yaml, quote the value, and then turn to json, it works just fine
❯ cat foo.json | dasel -r json -w yaml > foo.yaml

❯ cat foo.yaml
createdAt: 2023-06-13T20:19:48.531620935Z

❯ vim foo.yaml

❯ cat foo.yaml
createdAt: "2023-06-13T20:19:48.531620935Z"

❯ cat foo.yaml | dasel -r yaml -w json
{
  "createdAt": "2023-06-13T20:19:48.531620935Z"
}

Expected behavior
Converting from JSON to YAML and back should result in the original JSON (or equivalent JSON)
Desktop (please complete the following information):

OS: Ubuntu 22.04
Version: 2.3.4

❯ uname -a
Linux hermes 5.19.0-43-generic #44~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Mon May 22 13:39:36 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

❯ dasel --version
dasel version v2.3.4

This has been fixed and will be included in the next release.
$ echo '{"createdAt": "2023-06-13T20:19:48.531620935Z"}' | go dasel -r json -w yaml | dasel -r yaml -w json
{
  "createdAt": "2023-06-13T20:19:48.531620935Z"
}

The release has been merged in homebrew and you can now upgrade to v2.3.5


Add an option to disable the frequency curve weigthing

It would be great to have a option to easily disable the frequency curve weighting, when working on bass heavy audio (bass/drums/kick stems), it can lead to kinda unexpected results (high score while there are obvious audible issues in really low frequencies).

Good to know! You can bypass the frequency weighting currently by feeding in a custom IR that is just a Dirac (i.e. [1, 0, 0, 0, ...]). This will convolve the signal with a flat spectrum impulse instead of the frequency weighting.
However, this would use up unnecessary computation of course. So I will definitely add this feature! But you could use that as a janky workaround in the meantime.
Thanks for bringing this up, and I'd love it if you could share some of your "unexpected results" so I could document some "known issues" with this metric.

@jarredou This has been implemented in the latest release (v0.2.9). Just set bypass_filter=True in the LogWMSE instantiation and it will bypass the frequency weighting.
Let me know if this helps with the issues you were encountering!


[XeTLA] Sync <IP_ADDRESS>

Type of Change
feature or bug fix or documentation or others: other code sync
API changed or not: not
Description
Dg2 A770M
============== [kernel time] gflops   ==================
[kernel time]The minimum gflops(GPU_time) is 494.4
[kernel time]The maximum gflops(GPU_time) is 857.426
[kernel time]The median  gflops(GPU_time) is 830.218
[kernel time]The mean    gflops(GPU_time) is 812.764
Xe
***************** PROFILING FOR KERNEL0 ***********************
============= Profiling for [kernel time] =============
[kernel time]The first   running(GPU_time) time is 0.12544ms
[kernel time]The minimum running(GPU_time) time is 0.06384ms
[kernel time]The maximum running(GPU_time) time is 0.12544ms
[kernel time]The median  running(GPU_time) time is 0.0664ms
[kernel time]The mean(exclude the first trial) running(GPU_time) time is 0.0672145ms
[kernel time]The variance(exclude the first trial) running(GPU_time) time is 4.38324e-05ms
============== [kernel time] gflops   ==================
[kernel time]The minimum gflops(GPU_time) is 802.58
[kernel time]The maximum gflops(GPU_time) is 1577
[kernel time]The median  gflops(GPU_time) is 1516.2
[kernel time]The mean    gflops(GPU_time) is 1497.82
detail description
Issues: xxx
Expected Behavior & Potential Risk
the expected behavior that triggered by this PR
How has this PR been tested?
how to reproduce the test (including hardware information)
Dependency Change?
any library dependency introduced or removed

please verify on arc and pvc

done


fix(yargs): specify types for every CLI option

Fixes https://github.com/codecov/uploader/issues/876
(see the backstory/archeology/investigation :male_detective: in that issue linked above)

@drazisil-codecov @thomasrockhu-codecov @mitchell-codecov :point_up: this is an easy merge, but it fixes a serious bug with flags being corrupted on upload. Mind taking a look? :point_up:

@drazisil-codecov thanks! Do you think a new release with this could be expedited?

@drazisil-codecov Yep, just checking what else is pending so I can make it worth it :D


[ISSUE] Getting a UnhandledPromiseRejectionWarning when calling .accept()

Hi, I'm trying to do a p2p connection where one peer is the browser, and the other peer is the server. So basically, my browser client code is handling a SimpleSignalClient, and the server is handling both the SimpleSignalServer and the other SimpleSignalClient. The reason is because I'm trying to pass my video/audio stream (mediaStream) from browser to server, which once I have established that connection I will then do some more work on the server side to eventually get it converted + sent to a RTMP endpoint. The issue is that when I try to establish this relationship, when I have all the code set up with the discover/request/connect/etc, when my server's SignalClient calls request.accept({}, { wrtc: wrtc }) inside the .on('request, ...) then I get this error:
(node:35795) UnhandledPromiseRejectionWarning: #
(Use node --trace-warnings ... to show where the warning was created)
(node:35795) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). To terminate the node process on unhandled promise rejection, use the CLI flag --unhandled-rejections=strict (see https://nodejs.org/api/cli.html#cli_unhandled_rejections_mode). (rejection id: 1)
(node:35795) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
When I use a try/catch then I get this: metadata: {code: "ERR_CONNECTION_TIMEOUT"}
Is there a reason why this is failing to connect? Is there something else I'm missing here? I can share more of my code if it helps. Thanks!
Code snippets:
Server's SignalServer:
var signalServer = require('simple-signal-server')(io);
var signalClient = require('simple-signal-client')(socket);

...

signalServer.on('discover', (request) => {
  request.discover(signalClient.socket.id);
})

signalServer.on('disconnect', (socket) => {
})

signalServer.on('request', (request) => {
  request.forward();
})

Server's SignalClient:
  signalClient.on('request', (request) => {
    try {
      request.accept({}, { wrtc: wrtc }) // Accept the incoming request
    } catch (e) {
      console.error(e);
    }
  })

Client's SignalClient:
    import io from 'socket.io-client';
    import SimpleSignalClient from 'simple-signal-client';

    ...

    const signalClient = new SimpleSignalClient(io('localhost:1234'));
      signalClient.on('discover', (id) => {
        signalClient.connect(id); // connect to target client
      });

      signalClient.discover();

Hi, I am developing a p2p connection between browser and server and am experiencing similar problems.
In my case, I am getting an error in signalClient.connect().
In my case, I am getting an "{ code: ERR_CONNECTION_TIMEOUT }" error in signalClient.connect().
If the SimpleSignalClient.prototype._onSafeConnect() function is executed correctly in .connect or .accept, it seems to resolve the issue.

The usage of simple-signal was incorrect.
After modifying the code, the error is no longer thrown.
server.js:

robotPeer is equivalent to Server's SignalClient

const { createServer } = require('http')
const { Server } = require("socket.io")

let robotPeerPassword
function resetRobotPeerPassword() {
  robotPeerPassword = ''
  for (var i = 0; i < 6; i++)
    robotPeerPassword += String.fromCodePoint(Math.floor(Math.random() * 0x10FFFF))
}
resetRobotPeerPassword()

function startRobotClient(port, password) {
  const SimpleSignalClient = require('simple-signal-client')
  const io = require('socket.io-client')
  const wrtc = require('wrtc')

  const socket = io(`http://localhost:${port}`, { secure: true })
  const signalClient = new SimpleSignalClient(socket)

  signalClient.on('discover', async (id) => {
    console.log('robotClient:discover')
    await signalClient.connect(id, undefined, { wrtc: wrtc })
  })

  signalClient.on('request', async (request) => {
    console.log('robotClient:request')
    const { peer } = await request.accept(undefined, { wrtc: wrtc })

    peer.on('data', data => {
      console.log('got a message: ' + data)
    })
  })

  signalClient.discover(password)
}

let clientRequest

module.exports = function (port) {
  const server = createServer()

  const io = new Server(server)
  const signalServer = require('simple-signal-server')(io)

  signalServer.on('discover', (request) => {
    console.log(`server:discover`)

    const isRobotPeer = request.discoveryData === robotPeerPassword
    if (!isRobotPeer) {
      clientRequest = request
      startRobotClient(port, robotPeerPassword)
    } else {
      resetRobotPeerPassword()

      clientRequest.discover(request.socket.id)
      request.discover(clientRequest.socket.id)
    }
  })

  signalServer.on('request', (request) => {
    console.log(`server:request`)
    request.forward()
  })

  server.listen(port, (err) => {
    if (err) throw err
    console.log(`> Ready on http://localhost:${port}`)
  })
}

client.js:
const SimpleSignalClient = require('simple-signal-client')
const io = require('socket.io-client')
const wrtc = require('wrtc')

module.exports = function (port) {
  const socket = io(`http://localhost:${port}`, { secure: true })
  const signalClient = new SimpleSignalClient(socket)

  signalClient.on('discover', async (id) => {
    console.log('client:discover')
    const { peer } = await signalClient.connect(id, undefined, { wrtc: wrtc })

    peer.on('connect', () => {
      peer.send('how is it going?')
    })
  })

  signalClient.on('request', async (request) => {
    console.log('client:request')
    await request.accept(undefined, { wrtc: wrtc })
  })

  signalClient.discover()
}

index.js:
const port = parseInt(process.env.PORT || '3000')

require('./server')(port)
require('./client')(port)

console:
> node .\index.js
> Ready on http://localhost:3000
server:discover
server:discover
client:discover
robotClient:discover
server:request
server:request
robotClient:request
client:request
got a message: how is it going?

SignalServer will be opened
Client's SignalClient connect to SignalServer (Do not execute request.discover function here!)
Save Client's SignalClient request
Start Server's SignalClient
Server's SignalClient connect to SignalServer
Send the partner id to Client's SignalClient and Server's SignalClient with request.discover
Try to connect to the partner peer with signalClient.connect
SignalServer allows connection with request.forward
SignalClients allow connections (client:request, robotClient:request)
send data from Client's SignalClient to Server's SignalClient by peer.on('connect')

To support multiple SignalClient, start the Server's SignalClient after opening SignalServer.
server.js:
const { createServer } = require('http')
const { Server } = require("socket.io")

let robotPeerPassword = ''
for (var i = 0; i < 6; i++)
  robotPeerPassword += String.fromCodePoint(Math.floor(Math.random() * 0x10FFFF))

function startRobotClient(port, password) {
  const SimpleSignalClient = require('simple-signal-client')
  const io = require('socket.io-client')
  const wrtc = require('wrtc')

  const socket = io(`http://localhost:${port}`, { secure: true })
  const signalClient = new SimpleSignalClient(socket)

  signalClient.on('discover', async (id) => {
    console.log('robotClient:discover')
    await signalClient.connect(id, undefined, { wrtc: wrtc })
  })

  signalClient.on('request', async (request) => {
    console.log('robotClient:request')
    const { peer } = await request.accept(undefined, { wrtc: wrtc })

    peer.on('data', data => {
      console.log('got a message: ' + data)
    })
  })

  signalClient.discover(password)
}

let robotPeerRequest

module.exports = function (port) {
  const server = createServer()

  const io = new Server(server)
  const signalServer = require('simple-signal-server')(io)

  signalServer.on('discover', (request) => {
    console.log(`server:discover`)

    const isRobotPeer = robotPeerPassword && request.discoveryData === robotPeerPassword
    if (!isRobotPeer) {
      request.discover(robotPeerRequest.socket.id)
      robotPeerRequest.discover(request.socket.id)
    } else {
      robotPeerPassword = ''
      robotPeerRequest = request
    }
  })

  signalServer.on('request', (request) => {
    console.log(`server:request`)
    request.forward()
  })

  server.listen(port, (err) => {
    if (err) throw err
    console.log(`> Ready on http://localhost:${port}`)
    startRobotClient(port, robotPeerPassword)
  })
}


Case-sensitive header processing

Description
According to RFC 2616 header names are case-insensitive. Nevertheless, specmatic seems to ignore this nature of headers.
Steps to reproduce

Create a simple file OAS file, say documentation.yaml:

openapi: 3.0.3

info:
  version: 1.0.0
  title: My API
  description: Test API

servers:
  - description: Test server.
    url: https://example.com

paths:
  /test/{myParam}:
    get:
      summary: Some summary
      operationId: headers.test
      parameters:
        - in: path
          name: myParam
          schema:
            type: string
          required: true
        - in: header
          name: my-id
          required: true
          schema:
            type: string
            pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-0000[dD]981$
            minLength: 27
            maxLength: 27
          example: 6277E57D-4401-3F50-0000D981
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
...

Create simple spec file:

Feature: Some feature

  Background:
    Given openapi ./documentation.yaml

  Scenario Outline: Headers test
    When GET /test/(myParam:string)
    And request-header My-ID (string)
    Then status 200

    Examples:
      | My-ID                       | myParam  |
      | 2E8A10A9-1F37-796D-0000D981 | foo      |

Create example response, say contract_data/200.json:

{
  "http-request": {
    "method": "GET",
    "path": "/test/foo",
    "headers": {
      "My-ID": "2E8A10A9-1F37-796D-0000D981"
    }
  },
  "http-response": {
    "status": 200,
    "body": {
      "message": "Success!"
    }
  }
}

Start a stub server with contract

specmatic stub --port=8888

5.Test it:
curl -sSL -X GET 'http://<IP_ADDRESS>:8888/test/foo' -H 'My-Id: 2E8A10A9-1F37-796D-0000D981'

Expected response
{
    "message": "Success!"
}

Actual response
{
    "message": "SVNJK"
}

The following change corrects the situation:
openapi: 3.0.3

info:
  version: 1.0.0
  title: My API
  description: Test API

servers:
  - description: Test server.
    url: https://example.com

paths:
  /test/{myParam}:
    get:
      summary: Some summary
      operationId: headers.test
      parameters:
        - in: path
          name: myParam
          schema:
            type: string
          required: true
        - in: header
-         name: my-id
+         name: My-ID
          required: true
          schema:
            type: string
            pattern: ^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-0000[dD]981$
            minLength: 27
            maxLength: 27
          example: 6277E57D-4401-3F50-0000D981
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                type: object
                properties:
                  message:
                    type: string
...

This behavior is a bit troublesome because it forces you to pay attention to the case of headers, although it's not supposed to be important regarding RFC 2616.
System Information:

OS & version: MacOS 13.1 (22C65)
Specmatic version: 0.58.0
Java version: 1.8.0_351

@sergeyklay Thank you for submitting the issue. Really appreciate the details. The fix for this should be part of our next release. Please feel free re-open if you continue to see the issue.

You're welcome. And thank you for your efforts in creating a better contract testing tool.


fix: make welcome app editable hub

fixing: #1018

This PR was deployed with mocked data in the following URLs for your appreciation:

Frontend: https://fabric8-launcher-frontend-pr-1301-app.surge.sh
Welcome App: https://fabric8-launcher-frontend-pr-1301-welcome-app.surge.sh
Storybook: https://fabric8-launcher-frontend-pr-1301-storybook.surge.sh

Great job! :-)
Just two things:

"Choose if you want us to perpare a set of examples" -> prepare
Shouldn't we change the text in the card depending on the current state like we do with the other cards? Or do you guys feel that's not necessary? ( @edewit @ia3andy )


Bullet list activation reset text style already applied

Hello while testing the integration into our app, our QA raise a point which is tools reset with bullet list.
Steps to reproduce:

Select bold and/or italic tool
Select bullet point

Actual: Previous tools are reseted
Expected: Selected tools should be remains activated
We expect that as style activation/deactivation doesn't change other configuration in other cases. More over if we have already have a word in bold and then activate/deactivate bullet list, the word while stay in bold and the style too.

Hello,
Thanks for reporting this. I'll check it.

This should be working fine now, feel free to reopen if you still encounter this issue.


Fix: Allow more main network naming patern

Major change, will need to play again whole deployment to ensure no issues.

Dear @actatux ,
I will test the fix soon, so don't bother testing it right now :-)
Once test is done, let's merge.


apps wc: exclude capi namespaces from hnc

[!warning]
This is a public repository, ensure not to disclose:

[x] personal data beyond what is necessary for interacting with this pull request, nor
[x] business confidential information, such as customer names.

What kind of PR is this?
Required: Mark one of the following that is applicable:

[ ] kind/feature
[ ] kind/improvement
[ ] kind/deprecation
[ ] kind/documentation
[x] kind/clean-up
[ ] kind/bug
[ ] kind/other

Optional: Mark one or more of the following that are applicable:

[!important]
Breaking changes should be marked kind/admin-change or kind/dev-change depending on type
Critical security fixes should be marked with kind/security

[ ] kind/admin-change
[ ] kind/dev-change
[ ] kind/security
[ ] kind/adr

What does this PR do / why do we need this PR?

...

Fixes #

Information to reviewers

Checklist

[ ] Proper commit message prefix on all commits

Change checks:

[ ] The change is transparent
[ ] The change is disruptive
[ ] The change requires no migration steps
[ ] The change requires migration steps
[ ] The change upgrades CRDs
[ ] The change updates the config and the schema

Documentation checks:

[ ] The public documentation required no updates
[ ] The public documentation required an update - [link to change](set-me)

Metrics checks:

[ ] The metrics are still exposed and present in Grafana after the change
[ ] The metrics names didn't change (Grafana dashboards and Prometheus alerts are not affected)
[ ] The metrics names did change (Grafana dashboards and Prometheus alerts were fixed)

Logs checks:

[ ] The logs do not show any errors after the change

Pod Security Policy checks:

[ ] Any changed pod is covered by Pod Security Admission
[ ] Any changed pod is covered by Gatekeeper Pod Security Policies
[ ] The change does not cause any pods to be blocked by Pod Security Admission or Policies

Network Policy checks:

[ ] Any changed pod is covered by Network Policies
[ ] The change does not cause any dropped packets in the NetworkPolicy Dashboard

Audit checks:

[ ] The change does not cause any unnecessary Kubernetes audit events
[ ] The change requires changes to Kubernetes audit policy

Falco checks:

[ ] The change does not cause any alerts to be generated by Falco

Bug checks:

[ ] The bug fix is covered by regression tests

Is there an equivalent to openstack-system in Azure clusters?

I don't think so no, just had a look in a live environment.

So I've been busy with other things, but just to recap:

We want to add some Gatekeeper Policy as part of this, to prevent users from creating these reserved namespaces
Update public docs with this information

Correct?

We want to add some Gatekeeper Policy as part of this, to prevent users from creating these reserved namespaces

Can customers create subnamespaces even if they are part of the excludedNamespaces list?
If they can't then I don't think we need to add additional safeguard, expect making sure that they aren't created as a userNamespace as part of an application developer request.

We want to add some Gatekeeper Policy as part of this, to prevent users from creating these reserved namespaces

Can customers create subnamespaces even if they are part of the excludedNamespaces list? If they can't then I don't think we need to add additional safeguard, expect making sure that they aren't created as a userNamespace as part of an application developer request.

Yeah it would make sense if they couldn't, I'll verify that.

Do we want to merge this? I probably won't have time to look at adding some safeguard in the near future, this was mostly just a quick fix for something I found while working at other stuff. I'm not 100% sure what it would like off the top of my head, but someone who has a clearer idea could create an issue to implement that.

Do we want to merge this? I probably won't have time to look at adding some safeguard for ourselves in the near future, this was mostly just a quick fix for something I found while working at other stuff. I'm not 100% sure what it would like off the top of my head, but someone who has a clearer idea could create an issue to implement that.

Make sense to merge as is. We could consider create a CI task for updating the HNC reserved namespaces.Let me know if you agree @viktor-f

Do we want to merge this? I probably won't have time to look at adding some safeguard for ourselves in the near future, this was mostly just a quick fix for something I found while working at other stuff. I'm not 100% sure what it would like off the top of my head, but someone who has a clearer idea could create an issue to implement that.

Make sense to merge as is. We could consider create a CI task for updating the HNC reserved namespaces.Let me know if you agree @viktor-f

I'm not sure I understand what the follow-up task is supposed to do. Could you explain it a bit more?
I'm ok with merging this. Since we are removing a config option I would have wanted a migration script that moved any existing use of excludedNamespaces to excludedExtraNamespaces. But you did at least add the admin note, so it could be ok without the migration script.

I'm not sure I understand what the follow-up task is supposed to do. Could you explain it a bit more?

Revisited this and I suppose that the main follow up would be to update the public docs with the list of reserved namespaces.

I'm not sure I understand what the follow-up task is supposed to do. Could you explain it a bit more?

Revisited this and I suppose that the main follow up would be to update the public docs with the list of reserved namespaces.

Yes I think it would make sense to have that in the public docs. :+1:

I would see it as better choice to expose excludedNamespaces rather than excludedExtraNamespaces since that extra has lost its meaning.

While I do agree, I was looking at creating a migration script for this earlier and did not feel like it was worth the effort of trying to account for anchors/aliases without overwriting anything. We could of course make that a manual step too, but that step would have to be performed for almost all environments, not sure if that is preferable. One alternative could be to not make any changes to the exposed config right now and just add the namespaces, then we can have a follow-up to do the config changes.


Support encrypting the MySQL password

Feature Request
Is your feature request related to a problem? Please describe:
Currently the MySQL password is stored as plain-text in the config.toml, which some users feel uncomfortable with.
Describe the feature you'd like:
Provide some way to hide the password. Example:
# the current situation.
[tidb]
password = "Passw0rd!!"

# same as above, only base-64 encoded
[tidb]
password = {
    data = "UGFzc3cwcmQhIQ==",
    algorithm = "none",
}

# read from a file
[tidb]
password = {
    file = "/data/secret/lightning.txt"
}

# encrypted using AES-256-CTR, key read from a local file in raw binary.
[tidb]
password = {
    data = "zdpUpVhoJoggKw==",
    algorithm = "aes-256-ctr",
    key-file = "/data/secret/lightning-key.bin",
    nonce = "XN74TC92g2MBNbzEPpxZUA==",
}

# can also read the encrypted password from a binary file.
[tidb]
password = {
    file = "/data/secret/lightning.enc",
    algorithm = "aes-256-ctr",
    key-file = "/data/secret/lightning-key.bin",
    nonce = "XN74TC92g2MBNbzEPpxZUA==",
}

The password will always be immediately decrypted in the Lightning process no matter which algorithm is chosen, since the MySQL protocol demands the original password for authentication.
Describe alternatives you've considered:

Don't do it. Rely on Lightning-in-SQL.
Teachability, Documentation, Adoption, Optimization:

Zheshang Bank need  this feature （only base-64 encoded）

Financial enterprise use lighting tools embedded in shell script to import data routinely without any interaction，and the user password stored in configuration file should be encoded by base-64 algorithm 。

Specification
Configuration syntax (Lightning, DM)
In existing structural configuration (JSON, TOML, YAML), a "string" password field can be naturally extended to a dynamic variable password, which can be used to conceal the secret from the configuration.
A variable is a datatype satisfying the following JSON schema:

{
    "$schema": "https://json-schema.org/draft/draft-07/schema#",
    "$id": "#variable",
    "oneOf": [
        {
            "comment": "plain text",
            "type": "string"
        },
        {
            "comment": "decode variable using base64 on decrypt",
            "type": "object",
            "properties": {
                "base64": {"$ref": "#variable"}
            },
            "required": ["base64"]
        },
        {
            "comment": "read from file using path from variable on decrypt",
            "type": "object",
            "properties": {
                "file": {"$ref": "#variable"}
            },
            "required": ["file"]
        },
        {
            "comment": "read from environment using name from variable on decrypt",
            "type": "object",
            "properties": {
                "env": {"$ref": "#variable"}
            },
            "required": ["env"]
        },
        {
            "comment": "immediate decrypt on load and cache decrypted result in memory",
            "type": "object",
            "properties": {
                "cached": {"$ref": "#variable"}
            },
            "required": ["cached"]
        },
        {
            "comment": "decrypt variable by AES-256-CTR",
            "type": "object",
            "properties": {
                "aes-256-ctr": {
                    "type": "object",
                    "properties": {
                        "data": {"$ref": "#variable"},
                        "key": {"$ref": "#variable"},
                        "nonce": {"$ref": "#variable"}
                    },
                    "required": ["data", "key", "nonce"]
                }
            },
            "required": ["aes-256-ctr"]
        }
    ]
}

Variables can be cascaded, allowing us to use the same vocabulary for providing the password directly or the decryption key & nonce. This also allows us to provide some useful feature like
# read $TIDB_PASSWORD_FILE, which contains a file path, which contains the password itself.
# (this is similar to how GCP's credential file operates)
[tidb]
password.file.env = "TIDB_PASSWORD_FILE"

or some useless security theater like 🙃
[tidb]
password.base64.base64.base64.base64.base64.base64 = "Vm0xNFUxSXhWWGhXYTJSWFlURktWRlpyVWtKUFVUMDk="

TOML's dotted key feature makes it particularly easy to spell out these nested structures. Unfortunately this is not possible in YAML so you need to expand it:
target-database:
  host: <IP_ADDRESS>
  port: 3306
  user: root
  password:
    aes-256-ctr:
      data: {base64: zdpUpVhoJoggKw==}
      key: {file: /data/secret/lightning-key.bin}
      nonce: {base64: XN74TC92g2MBNbzEPpxZUA==}

Command line syntax (Lightning, Dumpling)
We prefer providing dotted command line flags like
./dumpling -h <IP_ADDRESS> -P 3306 \
    -u root \
    --password.aes-256-ctr.data.base64 'zdpUpVhoJoggKw==' \
    --password.aes-256-ctr.key.file '/data/secret/lightning-key.bin' \
    --password.aes-256-ctr.nonce.base64 'XN74TC92g2MBNbzEPpxZUA=='

This, however, requires spf13/pflag#187 or spf13/pflag#199 or spf13/pflag#285 (the amount of duplicated PR shows how well maintained the pflag library is). If these PRs aren't merged or we can't switch to one of the forks, we may need to use a more conventional and ugly API like:
./dumpling -h <IP_ADDRESS> -P 3306 \
    -u root \
    --encrypted-password '{"aes-256-ctr":{
        "data":{"base64":"zdpUpVhoJoggKw=="},
        "key":{"file":"/data/secret/lightning-key.bin"},
        "nonce":{"base64":"XN74TC92g2MBNbzEPpxZUA=="}
    }}'

Encryption tool
There should be a tool to generate the encrypted password (maybe through tidb-lightning-ctl / br debug / dmctl / tidb-ctl)
$ ./some-password-tool encrypt base64 -f toml -r 'tidb.password'
Enter password: ••••••••••
## Warning: base64 is not an encryption, it cannot protect your password if leaked. Use at your own risk.
[tidb]
password.base64 = "UGFzc3cwcmQhIQ=="

$ ./some-password-tool encrypt base64 --password 'Passw0rd!!' -f yaml -r 'target-database.password'
## Warning: base64 is not an encryption, it cannot protect your password if leaked. Use at your own risk.
target-database:
  password:
    base64: "UGFzc3cwcmQhIQ=="

$ ./some-password-tool encrypt base64 --password 'Passw0rd!!' -f json -r ''
// Warning: base64 is not an encryption, it cannot protect your password if leaked. Use at your own risk.
{"base64":"UGFzc3cwcmQhIQ=="}

$ ./some-password-tool encrypt aes-256-ctr --password 'Passw0rd!!' --key-file ./lightning-key.bin | tee encrypted.toml
password.aes-256-ctr.data.base64 = "zdpUpVhoJoggKw=="
password.aes-256-ctr.key.file = "/data/secret/lightning-key.bin"
password.aes-256-ctr.nonce.base64 = "XN74TC92g2MBNbzEPpxZUA=="

The possible subcommands are "base64" and "aes-256-ctr".

Argument
Meaning

-f, --format
Output format: TOML (default), YAML, JSON, CLI

-r, --root
A dot-separated key path of the root. Default to 'password'.

-p, --password
The password to encrypt. Reads from stdin if empty.

-k, --key-file
For aes-256-ctr only. A 32-byte file containing the encryption key.

the same tool should also be able to decrypt the password.
$ ./some-password-tool decrypt -f toml < encrypted.toml
Passw0rd!!

$ echo '{"x":{"base64":"UGFzc3cwcmQhIQ=="}}' | ./some-password-tool decrypt -f json -r x
Passw0rd!!

$ # with aes-256-ctr, losing the key file should make the decryption output garbage
$ echo -n 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA' > /data/secret/lightning-key.bin
$ ./some-password-tool decrypt < encrypted.toml
u÷	dµ�+�Z"

This tool can also be created as a static webpage, which should be the most user-friendly and easiest to use. However, there may be some conception issue about whether the password entered on a web interface will be secretly sent to PingCAP (no it won't).

Module path
The library will be placed on pingcap/tidb-tools for now. We may move it into pingcap/tidb as a sub-Go-module in future decisions.


YoutubePlayerFragment loading always

I'm using YoutubePlayerFragment to play youtube video in my app.
I have activityA, and activityB contain YoutubePlayerFragment.
First I open app and play youtube video in activityA, everything work perfectly. Then I open activity B, play youtube video in here, It's work perfect. After that, I back to activity A, It's loading forever?
Please tell me what something wrong here?

And I think, he got same problem with me.
http://stackoverflow.com/questions/32966683/youtube-youtubeplayersupportfragment-not-work-correctly-loading-always


Feat/compat compnents value

修复 compat 模式下，设置 value props 使 react 组件变成受控组件导致无法正常 work 的问题。
close https://github.com/raxjs/rax-components/issues/455

Codecov Report

Merging #430 (6f40d3f) into release-next (c91dba1) will decrease coverage by 0.24%.
The diff coverage is 87.87%.

@@               Coverage Diff                @@
##           release-next     #430      +/-   ##
================================================
- Coverage         82.24%   82.00%   -0.25%
================================================
  Files                87       87
  Lines              7452     7484      +32
  Branches            941      943       +2
================================================
+ Hits               6129     6137       +8
- Misses             1317     1340      +23
- Partials              6        7       +1

Impacted Files
Coverage Δ

packages/rax-compat/src/intersection-observer.ts
79.44% <ø> (ø)

packages/rax-compat/src/create-element.ts
92.59% <87.87%> (-1.26%)
:arrow_down:

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