Feature/10/11 engine install & uninstall Redis stateless

In this update, CloudBoz can:

install Redis
uninstall Redis

Based on this #11 and #10 is Stateless Therefore Comment for Volume but if needed in the future just uncomment

Hi @anjardanis, thank you for the update. I have a question about this pull request. How to set up a password for the Redis?


Add setuptools as a install_requires Dependency

pkg_resources is needed at runtime, lets be explicit and state that so pip etc. do the right thing.

Coverage remained the same at 98.315% when pulling 212078ba15e8af7817461fb65e16c257061107fc on cooperlees:master into 52f802c77573c0e64240cd47246de01ffbf96c0c on davidfischer:master.

Thanks!

Thanks for the useful and well unit tested library that save me a lot of time :D


ensure that you are dumping/loading as an object

this is to restore default behavior if the default options are overridden. The primary difference I ran into is in the date formats, if using compat mode, dates are converted to strings in the dump and load

But if we don't send dates as strings and parse them in our apps, only Ruby can consume these messages.

My attempt was to restore the behavior that was there previously. I am only doing this on where there is the dump and load so you get a ruby object back. The difference is that when compat mode is used you get a ruby object with a string instead of a ruby object with a date.

Ahh. I understand now. :shipit:


Terraform script does not create the logical volume for PX KVDB

I used the following steps to setup the Google Anthos on Equinix Metal with PX.
gcloud init
gcloud auth application-default login
mkdir -p equinix-px
cd equinix-px/
 export TF_VAR_metal_auth_token=...
export TF_VAR_metal_project_id=...
export TF_VAR_gcp_project_id=...

terraform init

# variables.tf
variable "metal_auth_token" {}
variable "metal_project_id" {}
variable "gcp_project_id" {}

# main.tf
module "anthos-on-baremetal" {
  source  = "equinix/anthos-on-baremetal/metal"
  version = "0.5.1"

  gcp_project_id = var.gcp_project_id
  metal_auth_token = var.metal_auth_token
  metal_project_id = var.metal_project_id
  metal_create_project = false
  ha_control_plane = false
  facility = "da11"
  cp_plan = "c3.medium.x86"
  worker_plan = "c3.medium.x86"
  worker_count = 3
  storage_module = "portworx"
  storage_options = {}
}

terraform apply

After the cluster is up and running with PX, I notice that the separate LV for PX KVDB is missing in all the three worker nodes. We definitely need to fix this problem ASAP as this prolongs the PX setup in the cluster.
root@eqnx-metal-gke-ww35x-worker-03:~# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda      8:0    0 447.1G  0 disk
sdb      8:16   0 447.1G  0 disk
sdc      8:32   0 223.6G  0 disk
sdd      8:48   0 223.6G  0 disk
├─sdd1   8:49   0     2M  0 part
├─sdd2   8:50   0   1.9G  0 part
└─sdd3   8:51   0 221.7G  0 part /
root@eqnx-metal-gke-ww35x-worker-03:~#
Collapse

This may be #45


Update dependencies

What does this PR do?
Update all the dependencies to their latest versions.
How should it be tested manually?
npm test
# or
yarn test

GitHub bug... it was merged, but shows like it wasn't :P


Fix serverless options

Since we don't load the config in serverless mode we need to add this option during build

@timneutkens approved while AFK


Test GitOps pipeline as part of CI

Adding verifications to run as part of integration tests for the GitOps pipeline:

checkout the current bedrock branch and run it against an HLD repo (currently, against fabrikate-production-cluster-demo) to verify that manifests can be completed
refactored some code in build.sh to support downloading an HLD if it's running from an independent build, such as this one

Fixes #340

/AzurePipelines run


add round A problem A

I've added round A problem
Closes #12

give a star to this repo if it was helpful!!

sure!


Modification dates

I'm looking to know when a model from an external source (Projectwise) was last consumed in an iModel. Would the command "select * FROM Bis.ExternalSourceAspect si JOIN bis.Model e ON si.Scope.Id = e.ECInstanceId Where si.Identifier LIKE 'pw%'" give the correct link between a projectwise file location and a model and their respective details? Or is there a better method?

⚠ Do not edit this section. It is required for imodeljs.github.io ➟ GitHub issue linking

LINK: ExternalSourceAspect---imodeljs-backend-link-to-docs
TAG: imodeljs-docs-question
SOURCE: https://www.itwinjs.org/reference/imodeljs-backend/elementaspects/externalsourceaspect/

select LastMod from bis.repositorylink where codevalue like 'pw%'
LastMod is juliandays, UTC.
If you are doing this programmatically in iModel.js and you want to get the timestamp back as a formatted string, you can do this:
select cast(LastMod as timestamp) from bis.repositorylink where codevalue like 'pw%'


Implements TileMap layers and move TileSetPlugins's functions to the TileMap node instead

This implements TileMap layers. Layers are now part of the TileMap node. Here is the list of their features:

Layers can be named.
Enabling/disabling layers. This is mainly to make some layers visible.
A layer can set set to Y-sort its tiles. In such case, you can specify a Y-sort origin integer value that will be added to the tiles Y-sort origin. This allow using layers for different height values, which is quite useful for top-down games.
A layer can have a Z-index value that will be added to the tiles Z-index. This allow some layers to be drawn on top/bottom of others. This is especially useful when some layers are Y-sorted.
The editors features a button to highlight the currently selected layer. This makes layers belong the selected one darker and the one on top of it translucent.

As a side note, I also removed the TileSetPlugin code and moved that to the TileMap node instead. This makes things easier to implement while still keeping different functions for different system, which keeps things organized.
Here it is in action:

Don' forget to minimize the SVG files.

I gave it a quick test and it's great! The only missing thing would be some shortcut to quickly switch between layers (if there isn't one already). Something like Ctrl + 1-9 maybe. I spotted a few issues though:
Not sure if it's intended, but the layer highlight is still active when you deselect the TileMap. Shouldn't it get "disabled" to display the TileMap normally if it's not selected?
The binding for set_cell() wasn't updated and it doesn't include the new layer argument.
Uh, maybe it's unrelated or non-issue, but feels to me like the dropdown has too much free space on the left:

idk

I gave it a quick test and it's great! The only missing thing would be some shortcut to quickly switch between layers (if there isn't one already). Something like Ctrl + 1-9 maybe.

I implemented layer switching with page_up, page_down. I think it's enough.

Not sure if it's intended, but the layer highlight is still active when you deselect the TileMap. Shouldn't it get "disabled" to display the TileMap normally if it's not selected?

Solved that one, layer selection is only visible when the TileMap node is active now.

Uh, maybe it's unrelated or non-issue, but feels to me like the dropdown has too much free space on the left

Well, I compute the width of the button from the minimal width of the several layer names. This avoid the button to change size depending on the inside value. There is some margin too but I can't do much about it without overriding theme elements (which bothers me). So well, I kept it that way.

Thanks!


added armijo rule

Following email from @jakobsj

We've got a steepest (gradient) descent algorithm in CIL, however as far as I know only with fixed step size at the moment, but I think we could add a backtracking line search with Armijo rule or similar quickly to make it easier to use.

I implemented the Armijo rule
BTW reading the article I discovered that the maximum theoretical rate the GradientDescent algorithm allows is rate = objective_function.L/2
and so that's why I found that using rate = objective_function.L/3.  would always work. Now I can use 2.1 instead than 3!

This branch builds fine and I would like to merge. Please @jakobsj @epapoutsellis could you comment on this?


Update URL ZAP event to Phish ZAP

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

exchange/exchange-ps/exchange/advanced-threat-protection/Get-MailDetailATPReport.md
:white_check_mark:Succeeded
View (exchange-ps)

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Fixing long voice chat delay while speaking

Having conducted tests, it turned out that at high FPS - Voice chat in the game goes with a big delay, which can be disastrous for the game

Could you share your testing methods and how you arrived at that conclusion?
Cheers!
J.

Could you share your testing methods and how you arrived at that conclusion?
Cheers! J.

I'm not 100% sure that this is the case, but you can see that at higher FPS, the game is busy processing frames because there are a lot of these frames and voice chat is processed last (after 2-2.5 seconds, timings are always different). At 30 fps and less, the game will almost instantly process voice chat as there are fewer frames and there is no queue from it. I've noticed that after playing game on l4d2center where im calling what to do on tank, my friend showed me a clip that i said that after tank walked to our room, but in reality i said call before he walked to our room, and this is on 55ms ping server.

I did a quick test with a friend where he recorded me talking so I could check the delay. In my test, I didn’t notice much difference in voice chat delay between 30fps and 300fps. This was just a quick personal test, so it doesn’t mean your findings are invalid, but it does suggest that more testing is needed to confirm if FPS is really the issue here.
The idea of a toggle to reduce FPS to 30 when the voice chat key is pressed is interesting, but it might introduce some drawbacks, like affecting gameplay fluidity, especially for players who use voice chat frequently.
Overall, while this is an interesting lead, I think it would need more testing to verify if it’s something that should be addressed in this config. At this stage, it’s hard to say for sure if this is the root cause or the right workaround.


feat: add hello world db migration and seeder for official-journal-api

@osk I had ticket from our last meeting to setup up base database setup for local development, so this is it.
Currently it's all just called hello-world, but it would be fantastic if you could maybe update it with more appropriate names and maybe add some actual tables if you have some database structure already planned :)


Add git gud reload as alias for git gud reset

These two commands should do the same thing, just add a parser with that and then in the dictionary, set the handler for reload to handle_reset

Hello @bthayer2365 ,
I would like to give this a try

Great, go for it!


Update lookback after merging #516

#516 changed some performance numbers so we want to reset the lookback to reflect that.

As always, any PRs over the next few days should have their performance numbers inspected very carefully before approval because we won't get the auto rejection until enough nightly builds run.


Run PFS1 scenario

Description
Run the PFS1 scenario and document issues. Fix SP and/or the Light Client, if necessary.
Follow-up from #1691
Acceptance criteria

Tasks

[ ]

Acceptance criteria

Tasks

[ ]

Running after #2020 + #2021 :


FIx automatic-mode not working due to color code out of range and not…

… obeying manual color assigning
Closes #32

Thanks


setup.py error - Compiling with SSE2 enabled, but no SSE2 defined

I've followed all the steps from the Dockerfile. The final step: python setup.py build/ is giving me this error:
/source/OpenSfM/opensfm/src/third_party/vlfeat/vl/imopv_sse2.c:15:2: error: #error "Compiling with SSE2 enabled, but no SSE2 defined"
#error "Compiling with SSE2 enabled, but no SSE2 defined"
^
In file included from /source/OpenSfM/opensfm/src/third_party/vlfeat/vl/imopv_sse2.c:22:0:
/usr/lib/gcc/i686-linux-gnu/4.8/include/emmintrin.h:31:3: error: #error "SSE2 instruction set not enabled"
error "SSE2 instruction set not enabled"
I've enabled SSE2 and SSE3 by adding a line in the CMakeLists.txt
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -msse -msse2 -msse3")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -msse -msse2 -msse3")

Solved.
Added these to the CMakeLists.txt in ../opensfm/src
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -msse -msse2 -msse3")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -msse -msse2 -msse3")

Did not work on Raspberry Pi 2
set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC -msse -msse2 -msse3")
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fPIC -msse -msse2 -msse3")

Output given below(After adding the above lines to CMakeLists.txt)
Configuring...
-- A library with BLAS API found.
-- A library with LAPACK API found.
-- A library with BLAS API found.
-- Found AMD library: /usr/lib/arm-linux-gnueabihf/libamd.so
-- Found AMD header in: /usr/include/suitesparse
-- Found CAMD library: /usr/lib/arm-linux-gnueabihf/libcamd.so
-- Found CAMD header in: /usr/include/suitesparse
-- Found COLAMD library: /usr/lib/arm-linux-gnueabihf/libcolamd.so
-- Found COLAMD header in: /usr/include/suitesparse
-- Found CCOLAMD library: /usr/lib/arm-linux-gnueabihf/libccolamd.so
-- Found CCOLAMD header in: /usr/include/suitesparse
-- Found CHOLMOD library: /usr/lib/arm-linux-gnueabihf/libcholmod.so
-- Found CHOLMOD header in: /usr/include/suitesparse
-- Found SuiteSparseQR library: /usr/lib/arm-linux-gnueabihf/libspqr.so
-- Found SuiteSparseQR header in: /usr/include/suitesparse
-- Did not find Intel TBB library, assuming SuiteSparseQR was not compiled with TBB.
-- Found SuiteSparse_config library: /usr/lib/arm-linux-gnueabihf/libsuitesparseconfig.a
-- Found SuiteSparse_config header in: /usr/include/suitesparse
-- Adding librt: /usr/lib/arm-linux-gnueabihf/librt.so to SuiteSparse_config libraries (required on Linux & Unix [not OSX] if SuiteSparse is compiled with timing).
-- Did not find METIS library (optional SuiteSparse dependency)
-- Boost version: 1.55.0
-- Found the following Boost libraries:
--   python
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/opencv/OpenSfM/cmake_build
Compiling extension...
[  2%] [  5%] [  7%] [ 10%] Building CXX object CMakeFiles/akaze.dir/third_party/akaze/lib/AKAZE.cpp.o
Building CXX object CMakeFiles/akaze.dir/third_party/akaze/lib/fed.cpp.o
Building CXX object CMakeFiles/akaze.dir/third_party/akaze/lib/nldiffusion_functions.cpp.o
c++: error: unrecognized command line option ‘-msse’
c++: error: unrecognized command line option ‘-msse2’
c++: error: unrecognized command line option ‘-msse3’
CMakeFiles/akaze.dir/build.make:54: recipe for target 'CMakeFiles/akaze.dir/third_party/akaze/lib/AKAZE.cpp.o' failed
make[2]: *** [CMakeFiles/akaze.dir/third_party/akaze/lib/AKAZE.cpp.o] Error 1
make[2]: *** Waiting for unfinished jobs....
c++: error: unrecognized command line option ‘-msse’
c++: error: unrecognized command line option ‘-msse2’
c++: error: unrecognized command line option ‘-msse3’
CMakeFiles/akaze.dir/build.make:77: recipe for target 'CMakeFiles/akaze.dir/third_party/akaze/lib/fed.cpp.o' failed
make[2]: *** [CMakeFiles/akaze.dir/third_party/akaze/lib/fed.cpp.o] Error 1
c++: error: unrecognized command line option ‘-msse’
c++: error: unrecognized command line option ‘-msse2’
c++: error: unrecognized command line option ‘-msse3’
CMakeFiles/akaze.dir/build.make:100: recipe for target 'CMakeFiles/akaze.dir/third_party/akaze/lib/nldiffusion_functions.cpp.o' failed
make[2]: *** [CMakeFiles/akaze.dir/third_party/akaze/lib/nldiffusion_functions.cpp.o] Error 1
CMakeFiles/Makefile2:60: recipe for target 'CMakeFiles/akaze.dir/all' failed
make[1]: *** [CMakeFiles/akaze.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Building C object CMakeFiles/vl.dir/third_party/vlfeat/vl/vlad.c.o
cc: error: unrecognized command line option ‘-msse’
cc: error: unrecognized command line option ‘-msse2’
cc: error: unrecognized command line option ‘-msse3’
CMakeFiles/vl.dir/build.make:54: recipe for target 'CMakeFiles/vl.dir/third_party/vlfeat/vl/vlad.c.o' failed
make[2]: *** [CMakeFiles/vl.dir/third_party/vlfeat/vl/vlad.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....
[ 12%] [ 15%] [ 17%] Building C object CMakeFiles/vl.dir/third_party/vlfeat/vl/mser.c.o
cc: error: unrecognized command line option ‘-msse’
cc: error: unrecognized command line option ‘-msse2’
cc: error: unrecognized command line option ‘-msse3’
CMakeFiles/vl.dir/build.make:77: recipe for target 'CMakeFiles/vl.dir/third_party/vlfeat/vl/mser.c.o' failed
make[2]: *** [CMakeFiles/vl.dir/third_party/vlfeat/vl/mser.c.o] Error 1
Building C object CMakeFiles/vl.dir/third_party/vlfeat/vl/rodrigues.c.o
Building C object CMakeFiles/vl.dir/third_party/vlfeat/vl/svm.c.o
cc: error: unrecognized command line option ‘-msse’
cc: error: unrecognized command line option ‘-msse’
cc: error: unrecognized command line option ‘-msse2’
cc: error: unrecognized command line option ‘-msse3’
cc: error: unrecognized command line option ‘-msse2’
cc: error: unrecognized command line option ‘-msse3’
CMakeFiles/vl.dir/build.make:123: recipe for target 'CMakeFiles/vl.dir/third_party/vlfeat/vl/svm.c.o' failed
make[2]: *** [CMakeFiles/vl.dir/third_party/vlfeat/vl/svm.c.o] Error 1
CMakeFiles/vl.dir/build.make:100: recipe for target 'CMakeFiles/vl.dir/third_party/vlfeat/vl/rodrigues.c.o' failed
make[2]: *** [CMakeFiles/vl.dir/third_party/vlfeat/vl/rodrigues.c.o] Error 1
CMakeFiles/Makefile2:131: recipe for target 'CMakeFiles/vl.dir/all' failed
make[1]: *** [CMakeFiles/vl.dir/all] Error 2
Makefile:76: recipe for target 'all' failed
make: *** [all] Error 2
Building package
running build
running build_py

Got the following without modifying CMakeLists.txt
Configuring...
-- A library with BLAS API found.
-- A library with LAPACK API found.
-- A library with BLAS API found.
-- Found AMD library: /usr/lib/arm-linux-gnueabihf/libamd.so
-- Found AMD header in: /usr/include/suitesparse
-- Found CAMD library: /usr/lib/arm-linux-gnueabihf/libcamd.so
-- Found CAMD header in: /usr/include/suitesparse
-- Found COLAMD library: /usr/lib/arm-linux-gnueabihf/libcolamd.so
-- Found COLAMD header in: /usr/include/suitesparse
-- Found CCOLAMD library: /usr/lib/arm-linux-gnueabihf/libccolamd.so
-- Found CCOLAMD header in: /usr/include/suitesparse
-- Found CHOLMOD library: /usr/lib/arm-linux-gnueabihf/libcholmod.so
-- Found CHOLMOD header in: /usr/include/suitesparse
-- Found SuiteSparseQR library: /usr/lib/arm-linux-gnueabihf/libspqr.so
-- Found SuiteSparseQR header in: /usr/include/suitesparse
-- Did not find Intel TBB library, assuming SuiteSparseQR was not compiled with TBB.
-- Found SuiteSparse_config library: /usr/lib/arm-linux-gnueabihf/libsuitesparseconfig.a
-- Found SuiteSparse_config header in: /usr/include/suitesparse
-- Adding librt: /usr/lib/arm-linux-gnueabihf/librt.so to SuiteSparse_config libraries (required on Linux & Unix [not OSX] if SuiteSparse is compiled with timing).
-- Did not find METIS library (optional SuiteSparse dependency)
-- Boost version: 1.55.0
-- Found the following Boost libraries:
--   python
-- Configuring done
-- Generating done
-- Build files have been written to: /home/pi/opencv/OpenSfM/cmake_build
Compiling extension...
[  5%] [  5%] [  7%] [ 10%] Building CXX object CMakeFiles/akaze.dir/third_party/akaze/lib/AKAZE.cpp.o
Building CXX object CMakeFiles/akaze.dir/third_party/akaze/lib/fed.cpp.o
Building CXX object CMakeFiles/akaze.dir/third_party/akaze/lib/nldiffusion_functions.cpp.o
Building C object CMakeFiles/vl.dir/third_party/vlfeat/vl/vlad.c.o
[ 12%] Building C object CMakeFiles/vl.dir/third_party/vlfeat/vl/mser.c.o
[ 15%] Building C object CMakeFiles/vl.dir/third_party/vlfeat/vl/rodrigues.c.o
[ 17%] Building CXX object CMakeFiles/akaze.dir/third_party/akaze/lib/utils.cpp.o
[ 20%] Building C object CMakeFiles/vl.dir/third_party/vlfeat/vl/svm.c.o
[ 23%] Building C object CMakeFiles/vl.dir/third_party/vlfeat/vl/mathop.c.o
[ 25%] Building C object CMakeFiles/vl.dir/third_party/vlfeat/vl/quickshift.c.o
[ 28%] Building C object CMakeFiles/vl.dir/third_party/vlfeat/vl/scalespace.c.o
[ 30%] Building C object CMakeFiles/vl.dir/third_party/vlfeat/vl/generic.c.o
[ 33%] Building C object CMakeFiles/vl.dir/third_party/vlfeat/vl/imopv.c.o
[ 35%] Building C object CMakeFiles/vl.dir/third_party/vlfeat/vl/ikmeans.c.o
[ 38%] Building C object CMakeFiles/vl.dir/third_party/vlfeat/vl/fisher.c.o
[ 41%] Building C object CMakeFiles/vl.dir/third_party/vlfeat/vl/mathop_avx.c.o
[ 43%] Building C object CMakeFiles/vl.dir/third_party/vlfeat/vl/array.c.o
[ 46%] [ 48%] Building C object CMakeFiles/vl.dir/third_party/vlfeat/vl/imopv_sse2.c.o
Building C object CMakeFiles/vl.dir/third_party/vlfeat/vl/pgm.c.o
/home/pi/opencv/OpenSfM/opensfm/src/third_party/vlfeat/vl/imopv_sse2.c:15:2: error: #error "Compiling with SSE2 enabled, but no __SSE2__ defined"
 #error "Compiling with SSE2 enabled, but no __SSE2__ defined"
  ^
/home/pi/opencv/OpenSfM/opensfm/src/third_party/vlfeat/vl/imopv_sse2.c:22:23: fatal error: emmintrin.h: No such file or directory
 #include <emmintrin.h>
                       ^
compilation terminated.
CMakeFiles/vl.dir/build.make:353: recipe for target 'CMakeFiles/vl.dir/third_party/vlfeat/vl/imopv_sse2.c.o' failed
make[2]: *** [CMakeFiles/vl.dir/third_party/vlfeat/vl/imopv_sse2.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....
CMakeFiles/Makefile2:131: recipe for target 'CMakeFiles/vl.dir/all' failed
make[1]: *** [CMakeFiles/vl.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
Linking CXX static library libakaze.a
[ 48%] Built target akaze
Makefile:76: recipe for target 'all' failed
make: *** [all] Error 2
Building package
running build
running build_py


dev environment postgres health check emitting errors

Environment

Nautobot version (Docker tag too if applicable): v1.5.12
Python version: v3.7
Database platform, version: postgres
Middleware(s):

Steps to Reproduce

run the development environment invoke debug using docker-compose.postgres.yml for the db container

Expected Behavior
No errors are emitted from the database container

Observed Behavior
Database container logs the following messages
nautobot-db-1             | 2023-03-14 17:08:43.726 UTC [87] FATAL:  role "root" does not exist
nautobot-db-1             | 2023-03-14 17:08:48.800 UTC [96] FATAL:  role "root" does not exist
nautobot-db-1             | 2023-03-14 17:08:53.875 UTC [105] FATAL:  role "root" does not exist

Adding PGUSER=nautobot to the db container environment fixes this.

If it can be useful:
    healthcheck:
      test: pg_isready --username=$$POSTGRES_USER --dbname=$$POSTGRES_DB
      interval: 5s
      timeout: 5s
      retries: 15
      start_period: 300s  # In case DB needs recovery, allow 5 mins of failures


Update release notes with new supported platforms

Signed-off-by: Jaymala Sinha<EMAIL_ADDRESS>Description
Add Ubuntu-18.04 and Debian-9 platform support
Issues Resolved
[List any existing issues this PR resolves, or any Discourse or
StackOverflow discussion that's relevant]
Check List

[ ] New functionality includes tests
[ ] All tests pass
[x] RELEASE_NOTES.md has been updated if required (not required for bugfixes, required for API changes)
[x] All commits have been signed-off for the Developer Certificate of Origin. See https://github.com/chef/chef/blob/master/CONTRIBUTING.md#developer-certification-of-origin-dco

Thanks, this has been added to the ChefDK release notes


Bazel-remote doesn't use openssl, so is not vulnerable to these issues, and it should be safe to use existing releases in the meantime.


Option to pass an array of API

There could be a case where the data is in multiple API requests. Option to pass array of API instead of only one.

MVP: The default function would only process a single call, to make it work the user of the lib should supply his own function.

The api is not so important as most of the data is getting passed preprocessed.


please fix

plugin znpc version 4.4
version paper
Checking version, please wait...
This server is running Paper version git-Paper-280 (MC: 1.20.2) (Implementing API version 1.20.2-R0.1-SNAPSHOT) (Git: 4675152)
You are 12 version(s) behind
Download the new version at: https://papermc.io/downloads/paper
client minecraft
when I open an npc or I'm standing in the console to spam it please vix it
console
[12:47:50 WARN]: [io.github.gonalez.znpcs.cache.TypeCache$BaseCache] No cache found for: [net.minecraft.world.entity.monster.warden.EntityWarden]
[12:47:50 WARN]: [io.github.gonalez.znpcs.cache.TypeCache$BaseCache] No cache found for: [net.minecraft.world.entity.monster.warden.EntityWarden] : [] ClazzLoader
[12:47:50 WARN]: [io.github.gonalez.znpcs.cache.TypeCache$BaseCache] Skipping cache for [net.minecraft.world.entity.monster.warden.EntityWarden]
[12:47:50 WARN]: [io.github.gonalez.znpcs.cache.TypeCache$BaseCache] No cache found for: [net.minecraft.world.entity.animal.frog.Frog  ]
[12:47:50 WARN]: [io.github.gonalez.znpcs.cache.TypeCache$BaseCache] No cache found for: [net.minecraft.world.entity.animal.frog.Frog  ] : [] ClazzLoader
[12:47:50 WARN]: [io.github.gonalez.znpcs.cache.TypeCache$BaseCache] Skipping cache for [net.minecraft.world.entity.animal.frog.Frog  ]

and there's no reason I was banned from the discord server by the nickname killeryt (.KillerYT)

[13:04:51 WARN]: [io.github.gonalez.znpcs.cache.TypeCache$BaseCache] No cache found for: [net.minecraft.network.protocol.game.PacketPlayOutEntityMetadata] : [] ConstructorLoader
[13:04:51 WARN]: [io.github.gonalez.znpcs.cache.TypeCache$BaseCache] Skipping cache for [net.minecraft.network.protocol.game.PacketPlayOutEntityMetadata]


Dino Game Clone

It's clone of Dino games where a score counter is there to count Your best Score and It's responsive in nature .
Assign this issue to me under GSSOC'23

Have really did this much project or currently doing projects and clones in big numbers. I guess you are just doing for sack of points in gssoc. Online all projects are available we can get that as well. Too much issues and pr you have created of clones 😂😂
Like to know your point on it.


Adding the changes for 2020 and HackoberFest in main page

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Krithika seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

Closing this as opened a new one!


Error

He,
I have this error,
Error: Class 'Picqer\Financials\Moneybird\Connection' not found in
Is this because i got the wrong connetcion details or is something else wrong?
Use whmcs 7.8.1

WHMCS 7.8 was only released a few days ago. We haven't had the chance to test it yet.
Just to be sure; did you follow the exact steps from the README and did you run composer install?

no i did not run the composer. I upload the files with ftp en followed the steps by whmcs.

@biwd you have to run composer install as the README says. You can't leave out one of the installation steps.
See: https://github.com/sensson/whmcs-moneybird#installation

Also for me, there is simply not enough information as exactly how the installation should be done. When I run 'composer install' in SSH on the server, I get the following error:
"Composer could not find a composer.json file in /home/twelve1q"
When i run 'composer install /home/twelve1q/public_html/accounts/modules/addons/moneybird' I also get an error.
Could the installation information please be updated with the exact instructions? I would really appreciate that. :-)
WHMCS is updated to the most recent stable version: 7.9.1


bug: staleIfError doesnt work, always ends with Caught an error in the request interceptor

I would like to use staleIfError functionality, but I'm not able to achieve this feature. When I got response with status net::ERR_CONECTION_REFUSED, in debug mode I always see error: Caught an error in the request interceptor. So its rejected before stale cache settings is read and can be used. I'm using basic configuration (for testing purpose only):
setupCache(axios, {     headerInterpreter: headers=>{          return {cache: 30*1*1000, stale: 60*60*1000}        })
I'm not using any own interceptors. axios 1.4.0, axios-cache-interceptor 1.2.0.

Here is very simple nodejs program, where the error is reproduced. Problem is probably in response, because staleIfError works well with https://jsonplaceholder.typicode.com/users for example. But I'm not able to find difference, I tried to remove or add some headers, but without any success.

const axios = require('axios');
const { setupCache } = require('axios-cache-interceptor/dev');

const test_url='http://test.satthosting.cz/backend/api/openapi/test';
//const test_url='https://jsonplaceholder.typicode.com/users';

setupCache(axios,
  {.
    headerInterpreter: headers=>{
           return 1000;
    },
    debug: console.log
 }
);

axios.get(test_url, { id: 'test'});

setTimeout(()=>axios.get('https://invalid.url.com/users', { id: 'test', cache: { staleIfError: 5000}}), 2000);

I'll checkout on this asap.

Hey @fsobola, sorry for this delay, i was having some family problems... I'll test it asap.

Hey @fsobola, your problem was the following: You're making your headerInterpreter to only allow cache to 1 second. The second request you're making is after two seconds, after that time, the cache was already evicted and there's nothing to return and fulfill de requirements of staleIfError.
You have two solutions: You can increase the TTL on header interpreter, headerInterpreter: headers => 3000 or return a second allowed property called stale that specifically helps this use case headerInterpreter: headers => ({ cache: 1000, stale: 50000 }). The previous examples allows requests to be kept up to a second, but stale requests can use this value up to 50 seconds later.
You can learn more at https://axios-cache-interceptor.js.org/config#headerinterpreter
P.S: thanks <3


nixos/nextcloud: update warning for MariaDB >= 10.6

Motivation for this change
MariaDB 10.6 is not supported by Nextcloud 23 (https://github.com/nextcloud/server/issues/25436).
Things done
This PR updates the existing warning to include Nextcloud 23.

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
22.05 Release Notes (or backporting 21.11 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[ ] Fits CONTRIBUTING.md.

@Ma27


Create requestLull option for dataModel and collection

When binding UI to the isSaving/isDestroying/etc observables it would be nice to have these observables 'lull' in the 'request in transit' state so that less UI thrashing occurs.
Proposed syntax for dataModel (collection also has the same requestLull config option):
fw.dataModel.create({
  namespace: 'someNamespace',
  url: '/endpoint',
  requestLull: 200 // 200 msec 'lull' time
  requestLull: function(operationType) { return someMsecValue; }
});

Note that as I close this, tests are slated for this feature for 1.3


Patient results datepicker options

Description
The patient results link requires users to manually enter their DOB with slashes. We should explore other datepicker options so that users are less likely to enter MMDDYYYY, MM-DD-YYYY, or some other combination instead of MM/DD/YYYY, which is the only accepted format.
Proposed solution
We should use a datepicker here, but I'm not sure it should be the datepicker used in the rest of the app.
USWDS recommends a 3-box input: https://designsystem.digital.gov/components/date-input/
We could also use a 3-box dropdown: https://vitalets.github.io/combodate/
Whatever is chosen, we should keep in mind that unlike the rest of the application we're primarily serving mobile users here.
Additional context
This was prompted by the realization that we lock users out after 5 invalid DOB attempts, and a friendlier UI might cut down on the number of users who can't access their results because they've locked themselves out.

Also note that the patient result experience could generally use some TLC, so if there are other suggestions for UX improvement here I'm all ears.

Started working on a potential solution in this branch, but don't have time to link it with the actual DOB logic right now: https://github.com/CDCgov/prime-simplereport/compare/emma/2923-date-input
This is what the new input would look like:

This Trussworks component is also a good reference: https://github.com/trussworks/react-uswds/blob/268d4e65aed4d5f9541fb487a4fa5b3ec152b86c/src/components/forms/DateInput/DateInput.tsx
As is their DOB story: https://trussworks.github.io/react-uswds/?path=/story/components-date-input--date-of-birth-example


[agent] stripArguments() should account for spaces in the executable path

What does this PR do?

Refactors and completes PR #22445.

Refactors unit tests into table tests with explicit names.
Distributes test cases to related testing structures.
Add additional test cases to increase test coverage.
Refactors extensionParser() function and related code to follow single-responsibility (extensionParser now only parses for extensions).
Change Split() to SplitN() for more efficient implementation.
Rename and consolidate files data_scrubber_nowin.go into data_scrubber_windows.go.
Cleaning (comments, naming, spacing etc.).

Allows windows executable paths to have spaces without being stripped.

EX: C:\Program Files\Datadog\agent.exe check process after argument stripping will output C:\Program Files\Datadog\agent.exe instead of C:\Program

Motivation
https://datadoghq.atlassian.net/browse/PROCS-1451

Describe how to test/QA your changes

Unit tests for windows and non windows OS exist (located in data_scrubber_fallback_test.go and data_scrubber_windows_test.go).
These unit tests cover all helper functions and the stripArguments function.

Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided. Except if the qa/skip-qa label, with required either qa/done or qa/no-code-change labels, are applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

I think it generally looks good, left a few questions.
You may also want to request a re-review from @drichards-87 since you changed the changelog message

Requesting a review from datadog/Documentation since it seems that @drichards-87 is OOO.

/merge


[BUG][E2E-Paimon] fix issue #7328. PaimonSinkCDCIT's test cases fails in windows

Purpose of this pull request
fix issue : #7328

Does this PR introduce any user-facing change?

How was this patch tested?

Check list

[ ] If any new Jar binary package adding in your PR, please add License Notice according
New License Guide
[ ] If necessary, please update the documentation to describe the new feature. https://github.com/apache/seatunnel/tree/dev/docs
[ ] If you are contributing the connector code, please check that the following files are updated:

Update change log that in connector document. For more details you can refer to connector-v2
Update plugin-mapping.properties and add new connector information in it
Update the pom file of seatunnel-dist

[ ] Update the release-note.

Please rename the pr title named "[Improve][E2E] Support windows for the e2e of paimon"


On reload, keep user in the last room

On reload, keep user in the last room

essa issue foi resolvida no PR #28


Adjust scopes for intrinsic subroutines and functions

Intrinsic functions and subroutines are now scoped as support.function

Applies suggested pointed out in #4

Applies suggested pointed out in #4


Edit chaos-daemon DaemonSet to allow Tolerations

What problem does this PR solve?
In some Kubernetes configuration chaos-daemon DaemonSet default behaviour is not allowed to create pod on each kubernetes node.
What is changed and how does it work?
Being able to use tolerations for chaos-daemon in chart values.yaml.
Does this PR introduce a user-facing change?:
Allow users to configure tolerations for chaos-daemon.

Codecov Report

Merging #326 into master will decrease coverage by 1.11%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #326      +/-   ##
==========================================
- Coverage   60.34%   59.23%   -1.12%
==========================================
  Files          44       42       -2
  Lines        2890     2556     -334
==========================================
- Hits         1744     1514     -230
+ Misses       1026      942      -84
+ Partials      120      100      -20

Impacted Files
Coverage Δ

pkg/utils/selector.go
53.36% <0%> (-6.41%)
:arrow_down:

pkg/chaosdaemon/util.go
76.25% <0%> (-6.19%)
:arrow_down:

pkg/utils/chaosdaemon.go

controllers/timechaos/types.go

pkg/chaosdaemon/time_server.go
100% <0%> (+5.12%)
:arrow_up:

Continue to review full report at Codecov.

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


face recognition when dimming

Hey . Very interested in dlib. A large door phone system has now been developed for your library. But the problem has become extremely acute - darkening of the face. I use the hog detector as it is best suited, but when starting with a dark face is immediately a problem. Could you tell me how to solve this problem - maybe initial processing filters or something else?
Some of the worst blackout examples. But even for better ones, there is a problem of not recognizing

Please tell me how to correct this situation, or at least send you a direction.

I would train a new HOG detector with images like these in the training dataset then.

So we should train your model already? What is the optimal number of photos we may need?

You can start from the dataset used to train the HOG model (available here
http://dlib.net/files/data/dlib_face_detector_training_data.tar.gz) and add
images that fail to it.

Many thanks for your help. We can not improve the image using filters to improve accuracy?

Thank you very much for your help, I'll start trying immediately. Question on cameras, we can use some kind of image filters to increase the accuracy in using your model.(frontal_face_detector)

The arbitrariness of partial training on their images of persons. The result is very good, thank you. However, if I repeat your learning settings completely, can I get the same accuracy?

Yes, if you run the same settings on the same dataset you will get the same results. The training parameters are recorded here http://dlib.net/dlib/image_processing/frontal_face_detector.h.html#get_frontal_face_detector

Everything is fine, thank you very much. But I just can't transfer the training to the video card. Is this possible on python?

although the question is more on RAM, I think my 256 is not enough ..
Strange, but I can not find information about this


feat(vue-renderer): support prepend/append body tags during ssr for all allowed tag types

This is a draft until #6121 is merged
Types of changes

[ ] Bug fix (a non-breaking change which fixes an issue)
[x] New feature (a non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Description
According to the html5 specs both meta, link, style, script as noscripts are allowed in the body. This was already support by VueMeta (thus Nuxt) on the client, but during SSR it wasnt yet.
Note, some tags are only allowed with certain attributes. Eg link must have a itemprop attribute, a link with a rel attribute is not allowed in the body. Its up to the user to use this features according to the spec.
Checklist:

[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly. (PR: #)
[ ] I have added tests to cover my changes (if not applicable, please state why)
[ ] All new and existing tests are passing.

Codecov Report

Merging #6134 into dev will decrease coverage by 0.02%.
The diff coverage is 88.88%.

@@            Coverage Diff             @@
##              dev    #6134      +/-   ##
==========================================
- Coverage   95.75%   95.72%   -0.03%
==========================================
  Files          80       80
  Lines        2659     2666       +7
  Branches      682      683       +1
==========================================
+ Hits         2546     2552       +6
- Misses         97       98       +1
  Partials       16       16

Flag
Coverage Δ

#e2e
100% <ø> (ø)
:arrow_up:

#fixtures
50.75% <0%> (-0.14%)
:arrow_down:

#unit
92.42% <88.88%> (-0.02%)
:arrow_down:

Impacted Files
Coverage Δ

packages/vue-renderer/src/renderers/spa.js
87.87% <100%> (+0.18%)
:arrow_up:

packages/vue-renderer/src/renderers/ssr.js
93.65% <83.33%> (-1.09%)
:arrow_down:

Continue to review full report at Codecov.

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

@clarkdo @pi0 Do you have any idea why the SPARenderer is being loaded on mode: 'ssr' ?
The basic.test fails at the moment due to my latest commit. The basic fixture is not a SPA build but the SPARendered is still being initiailzed. Because the SPARenderer is initialized before the SSR/ModernRenderer, VueMeta is loaded on the server but with the wrong config. Subsequent loads of VueMeta within the SSR App are ofc ignored because VueMeta is already loaded.

It makes switch SPA and SSR at runtime possible.

Yes, it uses the plugin options throughout its lifetime.
I have reverted the last commit as that wont ever work probably until v3. I either need to add support to VueMeta to make it possible to override options on calling vm.$meta.inject or Nuxt should do a search and replace in the SPA renderer. Both are not ideal ofc but probably the first is a bit cleaner.
Or maybe you have other/better suggestions?

I think you can check the mode config when passing ssrAppId and only do it when the value is spa, is that ok?

That would only be a partial fix I believe. Eg if somebody would switch during runtime from SSR to SPA then their SPA pages would still be generated with the wrong app id.

@pimlie I think swiching at runtime will re-run vue.use(VueMeata)

I have added support to VueMeta for directly generating tags from a metaInfo object. This means this PR is depending on #6153 for VueMeta v2.2
Creating the tags renderer (the object containing all the meta.text() stuff) is now at least two times faster. Before it took ~8-12ms, now it takes ~4-5ms

Before it took ~8-12ms, now it takes ~4-5ms

🔥


Upgrade to puppeteer v3

Fixed by https://github.com/oaeproject/Hilary/commit/b556dcf332e655a37d5e55dae6a5cf9b6118365e


Mini.Sessions fails to load session file at start if swap file warning printed

Contributing guidelines

[X] I have read CONTRIBUTING.md
[X] I have read CODE_OF_CONDUCT.md
[X] I have updated 'mini.nvim' to latest version

Module(s)
mini.sessions
Description
More precisely, session script load is interrupted after the E325 (swap file warning) is printed.
vim.g.SessionLoad remains 1
Neovim version
v0.8.0-dev+133
Steps to reproduce
require('mini.sessions').setup({
autoread = true,
autowrite = true,
directory = '~/.config/nvim/sessions/',
file = 'session.vim',
force = { read = false, write = true, delete = false },
verbose = { read = true, write = true, delete = true },
})
Expected behavior
No response
Actual behavior
Error detected while processing VimEnter Autocommands for "*":
E5108: Error executing lua ...local/share/nvim/plugged/mini.nvim/lua/mini/sessions.lua:194: Vim(edit):E325: ATTENTION
stack traceback:
[C]: in function 'cmd'
...local/share/nvim/plugged/mini.nvim/lua/mini/sessions.lua:194: in function 'read'
...local/share/nvim/plugged/mini.nvim/lua/mini/sessions.lua:399: in function 'on_vimenter'
[string ":lua"]:1: in main chunk

Thanks for the issue.
Does this error happen if you manually source session? Like with nvim -S <path-to-session>?

This way E325 is printed but session loads without an error and vim.g.SessionLoad is nit

I see, thanks for the explanation. As I understand in such case of an error at startup the session script is interrupted but mimi.sessions still thinks it has read the session file and keeps managing it. Maybe it can at least disable itself (with a notification) if it can be aware of an error?

As I understand in such case of an error at startup the session script is interrupted but mimi.sessions still thinks it has read the session file and keeps managing it.

Correct.
I am currently thinking about how to best approach this problem. The best way is to use some native nvim_source from issue I've created earlier (or other comparable approach I've missed). Otherwise, not sure what "disable itself" would mean here, but some kind of reaction to error would be appropriate.
Something should be done with error handling here, that is for sure. Yet not sure what exactly :)

I stand hugely corrected. Although upstream Neovim does have inconsistency for error handling, there was a simple one-word solution to the problem: use silent! source instead of source to read session.
As far as I can tell, this should be solved on latest main.


preserve is missing on Copy Activity Settings page

[Enter feedback here]
the document says in order to preserve the metadata when using the Copy activity you should set this under Settings.
when i go to settings for my Copy activity i do not see "Preserve"

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

ID: f46fe2f9-8db5-5b66-fedf-e3f99ea42e0e
Version Independent ID: 3da926b1-c9f0-8e9c-ac6e-4c02b7ff42e1
Content: Preserve metadata and ACLs using copy activity in Azure Data Factory - Azure Data Factory
Content Source: articles/data-factory/copy-activity-preserve-metadata.md
Service: data-factory
GitHub Login: @linda33wj
Microsoft Alias: jingwang

@ryancrawcour When you copy files as-is from Amazon S3/Azure Data Lake Storage Gen2/Azure Blob/Azure File Storage to Azure Data Lake Storage Gen2/Azure Blob/Azure File Storage with binary format, you can find the Preserve option on the Copy Activity > Settings tab for activity authoring or the Settings page in Copy Data Tool.

Hope this helps.

@ryancrawcour  We will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly continue the discussion and we will reopen the issue.


3 Days error

I've been getting this error for 3 days now, and have tried updating every day, still https://i.imgur.com/4Z9kr7a.png any ideas why? some of my other bots are broken too

You need to update the bot again.  The last few days discord.py has been updated and broke the previous versions of the bot.

I just did, could you look at my update script and see if its good... https://i.imgur.com/Zj73BcQ.png

No.  There's no reason not to use git if you're on linux.  Just stop the bot, git pull, restart.  You might need to move the autoplaylist if that changed.

i tried that, but it resets my configs every time its run, and other files... which i dont want

and i cant install git on amazon aws

https://github.com/SexualRhinoceros/MusicBot/wiki/Installation-guide-for-Ubuntu-14.04-and-other-versions
Did you look at this guide? It explains how to run the bot on Ubuntu for servers such as AWS, Digital Ocean, etc.


bridged networking and multiple providers

Hello I'm new here, just testing things out.
Is it possible for me to use a bridged network and not the virtualized network?
And is it possible to list multiple providers i.e. qemu hosts? example  If so, how do I tell this project to utilize them?
For example in my current setup I have my k8s VMs use br0 which is a bridge on each machine that is connected to an external dhcp network.  This enables me to have many VMs which are on separate physical machines all attached to a single network for them to cluster on.

Hi.
Network bridging should work now.
I have demonstrated the usage in bridge docs.
If bridge is already configured on host skip to the Setting up a cluster over bridged network part.


Clarification: canDeactivate & forceDeactivate & autoCleanUp

Hi, I've faced with not working canDeactivate by default. I've fixed it by the following code sample:
const router = createRouter([
  { name: 'messages', path: '/messages' },
  { name: 'messages.create', path: '/create' },
], {
  autoCleanUp: false,
});

router.usePlugin(browserPlugin({
  useHash: true,
  forceDeactivate: false,
}));

const canDeactivate = (router) => {
  return (toState, fromState) => {
    // Some conditions
    return false;
  }
}

router.canDeactivate('messages.create', canDeactivate);

router.start();

There are some related issue:

https://github.com/router5/router5/issues/175
https://github.com/router5/router5/issues/163
https://github.com/router5/router5/issues/368

Question: what are the use cases of canDeactivate without forceDeactivate: false and autoCleanUp: false options?

Another related question: is it correct way to connect View with canDeactivate handler?
// autoCleanUp: true

// route 'messages.create'
const BlockedView = () => {
  const { router } = useRouteNode('messages.create');

  const [blocked, setBlocked] = useState(false);

  router.canDeactivate('messages.create', (router) => (toState, fromState) => {
    return !blocked;
  });
  return (
    <View>
      <Link onClick={() => setState(!blocked)}>Toogle {blocked ? 'true' : 'false'}</Link>
    </View>
  );
}


Dev sever fails to start when inaccessible paths exist in project root

Describe the bug
When starting the Vite Dev Server, either by the vite command or via createServer(), if there are inaccessible paths in the project root then the dev server fails to load.
Reproduction
Create a new Vite project:
$ yarn create vite test --template vue
$ cd test
$ yarn
Create a directory owned by root ( or any user other than the one running vite ), and make it inaccessible to other users:
$ sudo mkdir private
$ sudo chmod o= private
Attempt to start vite dev server:
$ yarn dev
yarn run v1.22.15
warning package.json: No license field
$ vite
error when starting dev server:
Error: EACCES: permission denied, scandir '/home/user/Projects/test/private'
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

System Info
System:
    OS: Linux 5.10 Manjaro Linux
    CPU: (12) x64 AMD Ryzen 5 3600 6-Core Processor
    Memory: 6.98 GB / xxxxGB
    Container: Yes
    Shell: 5.1.8 - /bin/bash
  Binaries:
    Node: 16.11.0 - /usr/bin/node
    Yarn: 1.22.15 - /usr/bin/yarn
    npm: 8.0.0 - /usr/bin/npm
  npmPackages:
    @vitejs/plugin-vue: ^1.9.3 => 1.9.4
    vite: ^2.6.4 => 2.6.14

Used Package Manager
yarn
Logs
yarn run v1.22.15
warning package.json: No license field
$ /home/user/Projects/test/node_modules/.bin/vite --debug
  vite:config bundled config file loaded in 62.61ms +0ms
  vite:config using resolved config: {
  vite:config   plugins: [
  vite:config     'vite:pre-alias',
  vite:config     'alias',
  vite:config     'vite:modulepreload-polyfill',
  vite:config     'vite:resolve',
  vite:config     'vite:html-inline-script-proxy',
  vite:config     'vite:css',
  vite:config     'vite:esbuild',
  vite:config     'vite:json',
  vite:config     'vite:wasm',
  vite:config     'vite:worker',
  vite:config     'vite:asset',
  vite:config     'vite:vue',
  vite:config     'vite:define',
  vite:config     'vite:css-post',
  vite:config     'vite:client-inject',
  vite:config     'vite:import-analysis'
  vite:config   ],
  vite:config   server: { fs: { strict: undefined, allow: [Array] } },
  vite:config   define: { __VUE_OPTIONS_API__: true, __VUE_PROD_DEVTOOLS__: false },
  vite:config   ssr: { external: [ 'vue', '@vue/server-renderer' ] },
  vite:config   configFile: '/home/user/Projects/test/vite.config.js',
  vite:config   configFileDependencies: [ 'vite.config.js' ],
  vite:config   inlineConfig: {
  vite:config     root: undefined,
  vite:config     base: undefined,
  vite:config     mode: undefined,
  vite:config     configFile: undefined,
  vite:config     logLevel: undefined,
  vite:config     clearScreen: undefined,
  vite:config     server: { fs: [Object] }
  vite:config   },
  vite:config   root: '/home/user/Projects/test',
  vite:config   base: '/',
  vite:config   resolve: { dedupe: undefined, alias: [ [Object], [Object] ] },
  vite:config   publicDir: '/home/user/Projects/test/public',
  vite:config   cacheDir: '/home/user/Projects/test/node_modules/.vite',
  vite:config   command: 'serve',
  vite:config   mode: 'development',
  vite:config   isProduction: false,
  vite:config   build: {
  vite:config     target: [ 'es2019', 'edge88', 'firefox78', 'chrome87', 'safari13.1' ],
  vite:config     polyfillModulePreload: true,
  vite:config     outDir: 'dist',
  vite:config     assetsDir: 'assets',
  vite:config     assetsInlineLimit: 4096,
  vite:config     cssCodeSplit: true,
  vite:config     cssTarget: [ 'es2019', 'edge88', 'firefox78', 'chrome87', 'safari13.1' ],
  vite:config     sourcemap: false,
  vite:config     rollupOptions: {},
  vite:config     minify: 'esbuild',
  vite:config     terserOptions: {},
  vite:config     write: true,
  vite:config     emptyOutDir: null,
  vite:config     manifest: false,
  vite:config     lib: false,
  vite:config     ssr: false,
  vite:config     ssrManifest: false,
  vite:config     reportCompressedSize: true,
  vite:config     chunkSizeWarningLimit: 500,
  vite:config     watch: null,
  vite:config     commonjsOptions: { include: [Array], extensions: [Array] },
  vite:config     dynamicImportVarsOptions: { warnOnError: true, exclude: [Array] }
  vite:config   },
  vite:config   env: { BASE_URL: '/', MODE: 'development', DEV: true, PROD: false },
  vite:config   assetsInclude: [Function: assetsInclude],
  vite:config   logger: {
  vite:config     hasWarned: false,
  vite:config     info: [Function: info],
  vite:config     warn: [Function: warn],
  vite:config     warnOnce: [Function: warnOnce],
  vite:config     error: [Function: error],
  vite:config     clearScreen: [Function: clearScreen],
  vite:config     hasErrorLogged: [Function: hasErrorLogged]
  vite:config   },
  vite:config   createResolver: [Function: createResolver],
  vite:config   optimizeDeps: {
  vite:config     esbuildOptions: { keepNames: undefined, preserveSymlinks: undefined }
  vite:config   }
  vite:config } +3ms
error when starting dev server:
Error: EACCES: permission denied, scandir '/home/user/Projects/test/private'
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.

Validations

[X] Follow our Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Make sure this is a Vite issue and not a framework-specific issue. For example, if it's a Vue SFC related bug, it should likely be reported to https://github.com/vuejs/vue-next instead.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Discord Chat Server.
[X] The provided reproduction is a minimal reproducible example of the bug.

@Bill-ParfulTech, have you found a workaround to ignore those paths?

I don't get any errors when trying to reproduce this, but I think that's because your code imported something in the private folder? In which case the Vite dev server failing sounds like an expected behaviour to me.

@bluwy I have the same issue, but the private folder in my case is a bunch of data files that nothing in the app needs to be accessing.
There's no code at all in that directory. I can recreate this issue pretty easily with just:
cd <repo root>
mkdir foo
chmod 0 foo
<start server>

Thanks for the repro steps @xxx. That helped me narrow down the bug. It's an issue in tsconfck where the findAll function tries to scan for tsconfig.json but didn't handle non accessible directories. I've created an issue at https://github.com/dominikg/tsconfck/issues/51


LlamaMOE. The order of softmax and topK

Dear authors,
I notice that in HF's Mixtral:
https://github.com/huggingface/transformers/blob/b109257f4fb8b1166e7c53cc5418632014ed53a5/src/transformers/models/mixtral/modeling_mixtral.py#L852
Softmax is called before topK, and they re-normalize the probs after topK. While in LitGPT's LlamaMOE:
https://github.com/Lightning-AI/litgpt/blob/c81800f455dd997f786cbe2e110eff1f5c0d2d3b/litgpt/model.py#L341
Softmax is called after topK.
May I ask what is your thoughts behind this, and would this difference cause any mismatch in models' output?
Thank you so much!

Our implementation follows most closely the Mistral reference: https://github.com/mistralai/mistral-src/blob/main/moe_one_file_ref.py#L205-L212, please also notice our docstring reference: https://github.com/Lightning-AI/litgpt/blob/main/litgpt/model.py#L335
I cannot comment on why HF chose to follow a different approach. There doesn't seem to be a numerical difference at least in fp32


DI service lifetime disposal relative to requests

Fixes #17052
Thanks @Orwel! :rocket: ... sorry for the delay. We've been 🏃😅 working thru a lot of issues. We'll see how engineering wants to tweak this on review.

เมื่อ อา. 21 มิ.ย. 2563 เวลา 20:22 Luke Latham<EMAIL_ADDRESS>เขียนว่า:

Fixes #17052 https://github.com/dotnet/AspNetCore.Docs/issues/17052
Thanks @Orwel https://github.com/Orwel! 🚀 ... sorry for the delay.
We've been 🏃😅 working thru a lot of issues. We'll see how engineering
wants to tweak this on review.
You can view, comment on, or merge this pull request online at:
https://github.com/dotnet/AspNetCore.Docs/pull/18883
Commit Summary

DI service lifetime disposal relative to requests

File Changes

M aspnetcore/fundamentals/dependency-injection.md
https://github.com/dotnet/AspNetCore.Docs/pull/18883/files#diff-6326842a605b080714f289bc8cb24390
(8)

Patch Links:

https://github.com/dotnet/AspNetCore.Docs/pull/18883.patch
https://github.com/dotnet/AspNetCore.Docs/pull/18883.diff

—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/dotnet/AspNetCore.Docs/pull/18883, or unsubscribe
https://github.com/notifications/unsubscribe-auth/AP55P56BCZE4AUVWESTQYF3RXYCR3ANCNFSM4OD3NZVQ
.


Keep UI text in the database

[ ] editable via the django UI for non-developer updates
[ ] saved as fixtures for deployment
[ ] internationalization?

Closing, text in .csv file -> JSON conversion process


cast_site closes after 10 minutes

When casting something via the cast_site command, it automatically closes after 10 minutes.
The current workaround is to re-cast the site every 10 minutes, but it's rather annoying having to do this, not to mention it makes that annoying noise every time you cast.
I don't know if this is possible from an app perspective, but seeing as streaming apps can achieve it, it should be possible even if  it requires a bit of hacking.

Duplicate of #260.


updating to new beta router and angular rc4

@dagstuan I have tested the router with new changed and it is working fine. Would you like me to provide example also? Also how about adding tests and sample example in the repo itself?

Thank you for the PR! :) I have been planning on adding an example as well as unit tests, but I have been travelling lately, so I haven't had time to look at it, if you have a working example feel free to PR it, in the meantime I'll merge this one.
Thanks again! :)


verify statefulset for prometheus-operator test

See: https://github.com/coreos/prometheus-operator/blob/master/Documentation/design.md#prometheus

For each Prometheus resource, the Operator deploys a properly configured StatefulSet in the same namespace. The Prometheus Pods are configured to mount a Secret called  containing the configuration for Prometheus.

We should check the promesheus statefulset, instead of deployment, as prometheus-operator will create statefulset for each Prometheus resource, not deployment.

Update: I found it's not convenient to check the status of prometheus statefuset directly, let's switch to check the pod status since we know its name.


Compare matching behavior against 0.10 (currently used by Cargo and crates.io)

Request from @Eh2406:

There is a file here with all the versions and requirements from crates.io. It would be so comforting to compare that the same ones parse and match between 0.10 and 1.0. If there is time before the 1.0 release, I may try to do that, if someone does not beat me to it.

I ended up just using the most recent db dump (2021-05-25-020145) from https://static.crates.io/db-dump.tar.gz.
// [dependencies]
// csv = "1.1"
// db-dump = "0.3.0-rc.1"
// flate2 = "1.0"
// memmap = "0.7"
// semver_new = { package = "semver", version = "1.0.0-rc.2" }
// semver-old = { package = "semver", version = "0.10" }
// serde = { version = "1.0", features = ["derive"] }
// tar = "0.4"

use csv::StringRecord;
use flate2::read::GzDecoder;
use memmap::Mmap;
use serde::Deserialize;
use std::collections::{BTreeMap as Map, BTreeSet as Set};
use std::fs::File;
use tar::Archive;

const DB_DUMP: &str = "/home/david/Downloads/db-dump.tar.gz";

type CrateId = u32;
type StringVersion = String;
type StringVersionReq = String;

#[derive(Deserialize)]
struct Version {
    crate_id: CrateId,
    num: StringVersion,
}

#[derive(Deserialize, Eq, PartialEq, Ord, PartialOrd)]
struct Dependency {
    crate_id: CrateId,
    req: StringVersionReq,
}

fn main() {
    let mut versions: Map<CrateId, Vec<StringVersion>> = Map::new();
    let mut dependencies: Set<Dependency> = Set::new();

    let file = File::open(DB_DUMP).unwrap();
    let mmap = unsafe { Mmap::map(&file) }.unwrap();
    let mut archive = Archive::new(GzDecoder::new(mmap.as_ref()));
    for entry in archive.entries().unwrap() {
        let entry = entry.unwrap();
        let path = entry.path().unwrap();
        if path.ends_with("versions.csv") {
            let mut csv = csv::Reader::from_reader(entry);
            let headers = csv.headers().unwrap().clone();
            let mut record = StringRecord::new();
            while csv.read_record(&mut record).unwrap() {
                let record: Version = record.deserialize(Some(&headers)).unwrap();
                versions
                    .entry(record.crate_id)
                    .or_insert_with(Vec::new)
                    .push(record.num);
            }
        } else if path.ends_with("dependencies.csv") {
            let mut csv = csv::Reader::from_reader(entry);
            let headers = csv.headers().unwrap().clone();
            let mut record = StringRecord::new();
            while csv.read_record(&mut record).unwrap() {
                let record: Dependency = record.deserialize(Some(&headers)).unwrap();
                dependencies.insert(record);
            }
        }
    }

    dbg!(versions.len());
    dbg!(dependencies.len());

    for dep in &dependencies {
        let req_old = semver_old::VersionReq::parse(&dep.req).unwrap();
        let req_new = compat_parse_version_req(&dep.req).unwrap();

        for version in &versions[&dep.crate_id] {
            let version_old = semver_old::Version::parse(version).unwrap();
            let version_new = compat_parse_version(version).unwrap();

            let old_matches = req_old.matches(&version_old);
            let new_matches = req_new.matches(&version_new);
            if old_matches != new_matches {
                eprintln!(
                    "\"{}\".matches(\"{}\")  old={} new={}",
                    dep.req, version, old_matches, new_matches,
                );
            }
        }
    }
}

fn compat_parse_version(string: &str) -> Result<semver_new::Version, semver_new::Error> {
    match string.parse() {
        Ok(version) => Ok(version),
        Err(err) => {
            let deprecated = match string {
                "0.0.1-001" => "0.0.1-1",
                "0.3.0-alpha.01" => "0.3.0-alpha.1",
                "0.4.0-alpha.00" => "0.4.0-alpha.0",
                "0.4.0-alpha.01" => "0.4.0-alpha.1",
                _ => return Err(err),
            };
            Ok(deprecated.parse().unwrap())
        }
    }
}

fn compat_parse_version_req(string: &str) -> Result<semver_new::VersionReq, semver_new::Error> {
    match string.parse() {
        Ok(req) => Ok(req),
        Err(err) => {
            let deprecated = match string {
                "^0-.11.0" => "^0.11.0",
                "^0.1-alpha.0" => "^0.1.0-alpha.0",
                "^0.51-oldsyn" => "^0.51.0-oldsyn",
                "~2.0-2.2" => ">=2.0, <=2.2",
                _ => return Err(err),
            };
            Ok(deprecated.parse().unwrap())
        }
    }
}

Output:
[src/main.rs:59] versions.len() = 61556
[src/main.rs:60] dependencies.len() = 141110
"~2.0-2.2".matches("2.1.1")  old=false new=true
"~2.0-2.2".matches("2.1.2")  old=false new=true
"~2.0-2.2".matches("2.1.4")  old=false new=true
"~2.0-2.2".matches("2.1.5")  old=false new=true
"~2.0-2.2".matches("2.2.1")  old=false new=true
"~2.0-2.2".matches("2.2.2")  old=false new=true
"~2.0-2.2".matches("2.2.0")  old=false new=true
"~2.0-2.2".matches("2.2.4")  old=false new=true
"~2.0-2.2".matches("2.1.0")  old=false new=true
"~2.0-2.2".matches("2.1.3")  old=false new=true
"~2.0-2.2".matches("2.2.3")  old=false new=true
"~2.0-2.2".matches("2.2.5")  old=false new=true
"^0-.11.0".matches("0.8.1")  old=true new=false
"^0-.11.0".matches("0.7.1")  old=true new=false
"^0-.11.0".matches("0.10.0")  old=true new=false
"^0-.11.0".matches("0.5.0")  old=true new=false
"^0-.11.0".matches("0.7.2")  old=true new=false
"^0-.11.0".matches("0.12.4")  old=true new=false
"^0-.11.0".matches("0.8.0")  old=true new=false
"^0-.11.0".matches("0.1.12")  old=true new=false
"^0-.11.0".matches("0.4.1")  old=true new=false
"^0-.11.0".matches("0.2.1")  old=true new=false
"^0-.11.0".matches("0.2.2")  old=true new=false
"^0-.11.0".matches("0.12.1")  old=true new=false
"^0-.11.0".matches("0.12.2")  old=true new=false
"^0-.11.0".matches("0.7.0")  old=true new=false
"^0-.11.0".matches("0.4.0")  old=true new=false
"^0-.11.0".matches("0.1.9")  old=true new=false
"^0-.11.0".matches("0.6.2")  old=true new=false
"^0-.11.0".matches("0.12.3")  old=true new=false
"^0-.11.0".matches("0.3.0")  old=true new=false
"^0-.11.0".matches("0.6.0")  old=true new=false
"^0-.11.0".matches("0.6.1")  old=true new=false
"^0-.11.0".matches("0.9.0")  old=true new=false
"^0-.11.0".matches("0.4.2")  old=true new=false
"^0-.11.0".matches("0.1.8")  old=true new=false
"^0-.11.0".matches("0.12.0")  old=true new=false

Thank you so much. I am comfortable with that level of brakeage!

I am a little confused, how did #247 not get caught by this check?

I ran my test against the index, but crates.io normalized the version req to 0.11.*.  I didn't test against the actual Cargo.toml files.  I can run a test on that.

That makes sense. I just wanted to understand.

Here is an updated list.  My clone of crates.io is somewhat out of date, so this is current as of about a year ago.  Here is the script I used.  I think most of them are due to the x thing, which I never knew about!
riscv-regs-0.3.0/Cargo.toml.orig" "0.3.0" -> 0.5.x
    error: unexpected character 'x' while parsing patch version number
riscv-regs-0.3.0/Cargo.toml" "0.3.0" -> 0.5.x
    error: unexpected character 'x' while parsing patch version number
tari_comms-0.2.0/Cargo.toml.orig" "0.2.0" -> 0.5.x
    error: unexpected character 'x' while parsing patch version number
tari_comms-0.2.0/Cargo.toml" "0.2.0" -> 0.5.x
    error: unexpected character 'x' while parsing patch version number
rand_funcs-0.1.3/Cargo.toml.orig" "0.1.3" -> 0.x.x
    error: unexpected character 'x' while parsing minor version number
rand_funcs-0.1.3/Cargo.toml" "0.1.3" -> 0.x.x
    error: unexpected character 'x' while parsing minor version number
tokio-file-0.5.2/Cargo.toml.orig" "0.5.2" -> 0.*.1, >= 0.12.1
    error: unexpected character after wildcard in version req
tokio-file-0.5.2/Cargo.toml" "0.5.2" -> 0.*.1, >= 0.12.1
    error: unexpected character after wildcard in version req
easy-plugin-0.11.8/Cargo.toml" "0.11.8" -> 0.*.0
    error: unexpected character after wildcard in version req
easy-plugin-0.11.8/Cargo.toml" "0.11.8" -> 0.*.0
    error: unexpected character after wildcard in version req
easy-plugin-0.11.8/Cargo.toml" "0.11.8" -> 0.*.0
    error: unexpected character after wildcard in version req
easy-plugin-0.11.8/Cargo.toml" "0.11.8" -> 0.*.0
    error: unexpected character after wildcard in version req
cortex-a-3.0.4/Cargo.toml.orig" "3.0.4" -> 0.5.x
    error: unexpected character 'x' while parsing patch version number
cortex-a-3.0.4/Cargo.toml" "3.0.4" -> 0.5.x
    error: unexpected character 'x' while parsing patch version number
strfile-0.1.2/Cargo.toml" "0.1.2" -> <IP_ADDRESS>
    error: expected comma after patch version number, found '.'
curved_gear-0.1.0/Cargo.toml" "0.1.0" -> 0.x
    error: unexpected character 'x' while parsing minor version number
tma-0.1.1/Cargo.toml.orig" "0.1.1" -> 0-.11.0
    error: expected comma after major version number, found '-'
tma-0.1.1/Cargo.toml" "0.1.1" -> 0-.11.0
    error: expected comma after major version number, found '-'
derive-error-chain-0.11.2/Cargo.toml.orig" "0.11.2" -> 0.4.x
    error: unexpected character 'x' while parsing patch version number
derive-error-chain-0.11.2/Cargo.toml.orig" "0.11.2" -> 0.6.x
    error: unexpected character 'x' while parsing patch version number
derive-error-chain-0.11.2/Cargo.toml.orig" "0.11.2" -> 0.14.x
    error: unexpected character 'x' while parsing patch version number
derive-error-chain-0.11.2/Cargo.toml.orig" "0.11.2" -> 0.5.x
    error: unexpected character 'x' while parsing patch version number
derive-error-chain-0.11.2/Cargo.toml.orig" "0.11.2" -> 0.11.x
    error: unexpected character 'x' while parsing patch version number
derive-error-chain-0.11.2/Cargo.toml" "0.11.2" -> 0.4.x
    error: unexpected character 'x' while parsing patch version number
derive-error-chain-0.11.2/Cargo.toml" "0.11.2" -> 0.6.x
    error: unexpected character 'x' while parsing patch version number
derive-error-chain-0.11.2/Cargo.toml" "0.11.2" -> 0.14.x
    error: unexpected character 'x' while parsing patch version number
derive-error-chain-0.11.2/Cargo.toml" "0.11.2" -> 0.5.x
    error: unexpected character 'x' while parsing patch version number
derive-error-chain-0.11.2/Cargo.toml" "0.11.2" -> 0.11.x
    error: unexpected character 'x' while parsing patch version number
register-0.5.1/Cargo.toml.orig" "0.5.1" -> 0.5.x
    error: unexpected character 'x' while parsing patch version number
register-0.5.1/Cargo.toml" "0.5.1" -> 0.5.x
    error: unexpected character 'x' while parsing patch version number
udi-0.0.1/Cargo.toml.orig" "0.0.1" -> 0.11.x
    error: unexpected character 'x' while parsing patch version number
udi-0.0.1/Cargo.toml" "0.0.1" -> 0.11.x
    error: unexpected character 'x' while parsing patch version number
easy-plugin-parsers-0.11.8/Cargo.toml" "0.11.8" -> 0.*.0
    error: unexpected character after wildcard in version req
easy-plugin-parsers-0.11.8/Cargo.toml" "0.11.8" -> 0.*.0
    error: unexpected character after wildcard in version req
easy-plugin-parsers-0.11.8/Cargo.toml" "0.11.8" -> 0.*.0
    error: unexpected character after wildcard in version req
easy-plugin-plugins-0.9.1/Cargo.toml" "0.9.1" -> 0.*.0
    error: unexpected character after wildcard in version req
easy-plugin-plugins-0.9.1/Cargo.toml" "0.9.1" -> 0.*.0
    error: unexpected character after wildcard in version req
qemu-exit-0.1.2/Cargo.toml.orig" "0.1.2" -> 0.7.x
    error: unexpected character 'x' while parsing patch version number
qemu-exit-0.1.2/Cargo.toml" "0.1.2" -> 0.7.x
    error: unexpected character 'x' while parsing patch version number
mio-aio-0.4.1/Cargo.toml.orig" "0.4.1" -> 0.*.1, >= 0.12.1
    error: unexpected character after wildcard in version req
mio-aio-0.4.1/Cargo.toml" "0.4.1" -> 0.*.1, >= 0.12.1
    error: unexpected character after wildcard in version req

Thanks for doing that! It dose not look so bad!


Unnecessary renders

Component extends React.Component and use state. It causes unnecessary render calls. Need to extend spinner from React.PureComponent and remove internal state that is useless now.

I think use React.PureComponent and do some check in componentWillReceiveProps will be enough:
componentWillReceiveProps(nextProps) {
    const { visible, textContent } = nextProps;
    if (this.props.visible !== nextProps.visible) {
      this.setState({ visible });
    }
    if (this.props.textContent !== nextProps.textContent) {
      this.setState({ textContent });
    }
  }


Enable authentication passthrough from BRC to Galaxy workflow page

Users of https://brc.analytics.org must have accounts that will be shared with Galaxy instrances. Upon account creation the user should decide which Galaxy instance (.org, .eu. org.au is their "home" instance):
Big picture

users sign for accounts at https://brc-analytics.org/. This account will also work as a Galaxy account (at https://brc.usegalaxy.org/ and https://usegalaxy.org/).
Can set as a local preference which Galaxy they want as default
Need user preferences, that would for example allow customization of organism lists (favorite taxa) <- low priority at this point
Can users link existing Galaxy accounts with the new BRC?
Can these accounts be magically shared with MyNCBI?

Discussion:

Best solution: offer same login options for NCBI to Galaxy instances (top right)
Galaxy allows us to associate new entity IDs to existing accounts
AnVIL uses Next Auth. Once signed in via Google or MSFT, can link eRA commons ID.
NIH wants to eventually switch to RAS. This is not immediately applicable because we’re not hosting protected datasets.
ACTION: Dave R and Dannon put together a plan for how users will sign into BRC.Analytics and brc.usegalaxy.org or user selected Galaxy.

9/26/2024 Update
For MVP1 (#107) we (@dannon @NoopDog ) decided not to create dedicated Galaxy accounts but instead:

[ ] enable authentication via Google on .org
[ ] Explain new users that they need to create new Galaxy accounts via Google
[ ] Once brc-analytics.org accounts will be created we will link them to Galaxy

see https://github.com/galaxyproject/galaxy/issues/19082

Looks like this works.


OnDemand Tables: Determine how OnDemand tablets are brought online

When a client requests that an on-demand tablet be brought online, the Manager will create a future location in the TabletMetadata causing the tablet to be assigned and balanced. The assignment / balancer will need to take into account the tserver group when deciding which tserver to use.

Draft PR up at https://github.com/dlmarion/accumulo/pull/37

Is there a mechanism to alert on approaching resource limits or evaluate the cluster's current size/use before marking a tablet as onDemand?

Given that we don't know which schedulers might be in use on a cluster, I think we just need to emit metrics that can be used for a scheduling system to make a determination that more tablet servers are needed. Accumulo doesn't do any alerting, that's typically set up by the users of the system - trigger an alert when some criteria is met.

Given the possibility of a limited resource footprint, what mechanism is going to be used for scheduling the tablet hosting?

I don't think we should build or use a specific scheduler. KEDA and HPA exist already and I'm sure the different commercial cloud vendors may supply their own solutions as well (Azure has VPA for example).

What determines hosting priority of onDemand tables? should this exist? should it be a per-client setting or perhaps per table?

I don't think we have had any discussion of priority. Can you give an example of how priority would work?

Are "resources unavailable for hosting" an error condition that can be handled for onDemand tables?

I'm not sure that we can do this reliably. If we were able to determine a cost (in terms of memory required to host a tablet), a TabletServer may or may not have enough memory to host another tablet. It may appear that the TabletServer doesn't have the memory, but after a GC it very well could. I'm not sure there is a good answer here.

Is there a possibility of scheduling deadlock situations?

I don't think so, this is using the existing mechanism of assigning online unassigned tablets to tablet servers. When the client requests that an ondemand tablet is assigned, it just puts a marker entry in the tablet metadata for that tablet. The TabletGroupWatcher process in the Manager will notice this change and on it's next pass assign it to a TabletServer.

Is there a mechanism to alert on approaching resource limits or evaluate the cluster's current size/use before marking a tablet as onDemand?

Given that we don't know which schedulers might be in use on a cluster, I think we just need to emit metrics that can be used for a scheduling system to make a determination that more tablet servers are needed. Accumulo doesn't do any alerting, that's typically set up by the users of the system - trigger an alert when some criteria is met.

:+1:  Using an external metric collection system makes sense.

Given the possibility of a limited resource footprint, what mechanism is going to be used for scheduling the tablet hosting?

I don't think we should build or use a specific scheduler. KEDA and HPA exist already and I'm sure the different commercial cloud vendors may supply their own solutions as well (Azure has VPA for example).

Scheduling was probably the wrong word to use. But I agree on using a pre-defined scheduler for k8s resources.
I think this question is wrapped into the priority discussion.

What determines hosting priority of onDemand tables? should this exist? should it be a per-client setting or perhaps per table?

I don't think we have had any discussion of priority. Can you give an example of how priority would work?

Please correct any inaccuracy here.
Lets say we have an accumulo cluster that does not have tserver groups implemented and services two clients.
Both clients have tables that, individually, fit within the cluster's resource footprint but when hosted at the same time exceed the current resources.
If my understanding is correct, both clients can attempt writes on "onDemand" tables that are currently unloaded. Or, both clients could request that tables be moved from offline to "onDemand".
Each of these actions would result in the tablets being marked for assignment and attempt to be loaded onto tservers via the TabletGroupWatcher.
Since these are not enough resources for both tables to be fully hosted, will the TabletGroupWatcher discern which "ondemand" tablets should be hosted first? Or does it just see a pool of tablets that need to be assigned and will do so indiscriminately?
If it's the latter, since the clients are attempting actions at a table level vs a tablet level. Does that mean all tablets for a given table need to be assigned and loaded before the action can be completed?
If so, then as part of bringing tablets online, a priority level (1-x) or an "onDemand" request timestamp could be included in the metadata. Then the TabletGroupWatcher could ensure all tablets of a specific "onDemand" request would be fully hosted prior to assigning a second "OnDemand" requests tablets.
Otherwise, wouldn't there be a resource blocking issue where tablets of both tables are being assigned, but each table cannot fully be hosted due to resource constraints?

Is there a mechanism to alert on approaching resource limits or evaluate the cluster's current size/use before marking a tablet as onDemand?

Given that we don't know which schedulers might be in use on a cluster, I think we just need to emit metrics that can be used for a scheduling system to make a determination that more tablet servers are needed. Accumulo doesn't do any alerting, that's typically set up by the users of the system - trigger an alert when some criteria is met.

👍 Using an external metric collection system makes sense.

Given the possibility of a limited resource footprint, what mechanism is going to be used for scheduling the tablet hosting?

I don't think we should build or use a specific scheduler. KEDA and HPA exist already and I'm sure the different commercial cloud vendors may supply their own solutions as well (Azure has VPA for example).

Scheduling was probably the wrong word to use. But I agree on using a pre-defined scheduler for k8s resources. I think this question is wrapped into the priority discussion.

What determines hosting priority of onDemand tables? should this exist? should it be a per-client setting or perhaps per table?

I don't think we have had any discussion of priority. Can you give an example of how priority would work?

Please correct any inaccuracy here.
Lets say we have an accumulo cluster that does not have tserver groups implemented and services two clients. Both clients have tables that, individually, fit within the cluster's resource footprint but when hosted at the same time exceed the current resources.

What does it mean to exceed? I believe that the limitation to a TabletServer hosting a Tablet is the amount of memory given to the TabletServer. If a TabletServer can host N Tablets, it will still be limited as to how many tablets can read/write concurrently based on other properties. If a TabletServer can't host N tablets, then it it needs more memory, or more TabletServers need to be stood up so that the load can be distributed. I would say that determining how many Tablets a TabletServer can host would be difficult as the TabletMetadata is not the same size for each Tablet. It might be possible to use some rough upper bound on the amount of memory required to host each Tablet to determine how many TabletServers are needed.

If my understanding is correct, both clients can attempt writes on "onDemand" tables that are currently unloaded. Or, both clients could request that tables be moved from offline to "onDemand". Each of these actions would result in the tablets being marked for assignment and attempt to be loaded onto tservers via the TabletGroupWatcher.

Moving the table state from offline to ondemand would not result in tablets being loaded. The tablets for an ondemand table are only loaded when the client needs them for live ingest or scans.

Since these are not enough resources for both tables to be fully hosted, will the TabletGroupWatcher discern which "ondemand" tablets should be hosted first? Or does it just see a pool of tablets that need to be assigned and will do so indiscriminately?

The latter

If it's the latter, since the clients are attempting actions at a table level vs a tablet level. Does that mean all tablets for a given table need to be assigned and loaded before the action can be completed?

The way that I currently have this wired up, the tablets are loaded when they are required by the client. The client tries to determine the location (which TabletServer) a tablet is hosted on, so that it can send read or write requests. If the tablet is not hosted, and the table is ondemand, it sends a request for the tablet to be hosted which incurs some latency cost. So, the number of tablets that need to be hosted for an ondemand table are the sum of the tablets involved in read and write requests from all of the clients. If you do an unbounded scan, then it's going to eventually host the entire table, but that's what the user requested of the client.

If so, then as part of bringing tablets online, a priority level (1-x) or an "onDemand" request timestamp could be included in the metadata. Then the TabletGroupWatcher could ensure all tablets of a specific "onDemand" request would be fully hosted prior to assigning a second "OnDemand" requests tablets.
Otherwise, wouldn't there be a resource blocking issue where tablets of both tables are being assigned, but each table cannot fully be hosted due to resource constraints?

If we end up with a mechanism for determining reliably how many tablets a TabletServer can host, then I agree we could introduce some priority scheme. Without that, and in its current form, the code just does what is asked. In #3212 we will create some mechanism for unloading ondemand tablets, not sure what that will look like yet. I think there are several possibilities, for example: a TabletServer could host N (configurable) ondemand tablets and unload them in an LRU fashion.

What does it mean to exceed? I believe that the limitation to a TabletServer hosting a Tablet is the amount of memory given to the TabletServer. If a TabletServer can host N Tablets, it will still be limited as to how many tablets can read/write concurrently based on other properties. If a TabletServer can't host N tablets, then it it needs more memory, or more TabletServers need to be stood up so that the load can be distributed. I would say that determining how many Tablets a TabletServer can host would be difficult as the TabletMetadata is not the same size for each Tablet. It might be possible to use some rough upper bound on the amount of memory required to host each Tablet to determine how many TabletServers are needed.

"Exceed "is exactly what you stated, no TabletServers with available memory exist to host the assigned tablet.
I'm curious what the default balancer does for tablet assignment. If it's just based off # of tablets per tserver that doesn't seem optimal, but out of scope of this current conversation.

The way that I currently have this wired up, the tablets are loaded when they are required by the client. The client tries to determine the location (which TabletServer) a tablet is hosted on, so that it can send read or write requests. If the tablet is not hosted, and the table is ondemand, it sends a request for the tablet to be hosted which incurs some latency cost. So, the number of tablets that need to be hosted for an ondemand table are the sum of the tablets involved in read and write requests from all of the clients. If you do an unbounded scan, then it's going to eventually host the entire table, but that's what the user requested of the client.

Thanks for the explanation, I think what wasn't clicking in my head was how the client interaction worked for a given write. This makes more sense.

If we end up with a mechanism for determining reliably how many tablets a TabletServer can host, then I agree we could introduce some priority scheme. Without that, and in its current form, the code just does what is asked. In https://github.com/apache/accumulo/issues/3212 we will create some mechanism for unloading ondemand tablets, not sure what that will look like yet. I think there are several possibilities, for example: a TabletServer could host N (configurable) ondemand tablets and unload them in an LRU fashion.

Yeah, I could see priority being used for both hosting and unloading. But I agree that a mechanism for # of possible hosted tablets is required for that to work.

Since tablet sizes are going to vary widely, even within the same table or database, it might just make sense to have a property somewhere that limits the number of ondemand tablets that can be hosted per tablet server. This could feed into the implementation of #3212 . Users could use something like OpenJDKs Java Object Layout tool, specifically the footprint command to find the average size of their tablets to help inform them on how to modify this property. Or maybe the property is used to emit a metric when more tablet servers are need to be spun up based on the number of tablet servers, the number of ondemand tablets hosted, TabletServer heap size, block cache sizes, etc. However, that assumes equal distribution of tablets. It might be easier to write an SPI where the user can plug in their own logic, since this seems like a pretty intractable problem.


dd: handle stdout redirected to seekable file

This pull request fixes a bug in dd where null bytes would be unintentionally written if stdout were redirected to a seekable file. For example, before this commit, if dd were invoked from the command-line as
dd if=infile bs=1 count=10 seek=5 > /dev/sda1

then five zeros would be written to /dev/sda1 before copying ten bytes of infile to /dev/sda1. After this commit, dd will correctly seek five bytes forward in /dev/sda1 before copying the ten bytes of infile. I wasn't sure how to write a test for this.
In order to accomplish this, the first commit moves the argument parsing out of the Input::new() and Output::new() functions. This was needed in order to be able to determine whether we need to use the Output<File> specialization even when no outfile is specified in the command-line arguments. The code is a bit messy, but I think it should work.
Fixes #3542.

I know you had serious problems with this on your system before, so sorry for asking. Did you try to run tests/dd/skip-seek-past-dev.sh as root with the changes from this PR?

I did not try to run that test yet. I thought the CI system executes that test because of the issues we had in #3442, but now it looks like the test is skipped? From the logs:
2022-08-27T21:23:35.8791953Z skip-seek-past-dev.sh: skipped test: must be run as root
2022-08-27T21:23:35.8830694Z SKIP: tests/dd/skip-seek-past-dev.sh

Yes, sadly the CI doesn't run any GNU tests which requires root. That's why I asked.

Okay, I'll install a virtual machine and try it there.

I checked out the branch from pull request #3882 (which includes the changes from this branch as well as the change to df that triggered the issue before) and tested by running
sudo bash util/run-gnu-test.sh tests/dd/skip-seek-past-dev.sh

the relevant part of the error log is:
--- err_ok	2022-08-30 19:04:36.700725532 -0400
+++ err	2022-08-30 19:04:36.596723639 -0400
@@ -1,3 +1 @@
-dd: 'standard output': cannot seek: Invalid argument
-0+0 records in
-0+0 records out
+dd: failed to seek in output file: Invalid input
FAIL tests/dd/skip-seek-past-dev.sh (exit status: 1)

The message "failed to seek in output file: Invalid input" comes from https://github.com/uutils/coreutils/blob/282774a3ef1c6ef38aa22d0fa2271f3971d3a00d/src/uu/dd/src/dd.rs#L543-L544 which is in the implementation for Output<File>. That's what I expected, so that's good!


[AutoPR hanaonazure/resource-manager] Microsoft.HanaOnAzure: Remove readOnly attribute from customer-provided properties in CreateHanaInstance

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/6259

(message created by the CI based on PR content)

This PR has been merged into https://github.com/Azure/azure-sdk-for-python/pull/5808


feat: GitHub Action to publish the package

Automate publishing the package to PyPI.

Codecov Report

Merging #3 (dadadc7) into main (f5ceaf7) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main       #3   +/-   ##
=======================================
  Coverage   85.52%   85.52%
=======================================
  Files           8        8
  Lines         228      228
  Branches       29       29
=======================================
  Hits          195      195
  Misses         26       26
  Partials        7        7

Continue to review full report at Codecov.

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


Add kerkour.com

Hi,
I've added https://kerkour.com , a blog about software development (Rust & Go), security and entrepreneurship
Cheers :)

thanks


could anyone please help regarding this error?

I have executed the given example on google colab. I changed the working directory into the working directory.  using the following code:
import os
os.chdir("/content/drive/My Drive/Colab Notebooks/3d-mri-brain-tumor-segmentation-using-autoencoder-regularization-master")
that working directory having the following files:
Brats_2018     model.py pycache  testing.ipynb
group_norm.py  NVDLMED_Implementation.ipynb  README.md
when extract the datadet from below code
import zipfile  # For faster extraction
dataset_path = "/Brats_2018/MICCAI_BraTS_2018_Data_Training.zip"
zfile = zipfile.ZipFile(dataset_path)
zfile.extractall()
error here is
FileNotFoundError                         Traceback (most recent call last)
 in ()
1 import zipfile  # For faster extraction
2 dataset_path = "/Brats_2018/MICCAI_BraTS_2018_Data_Training.zip"
----> 3 zfile = zipfile.ZipFile(dataset_path)
4 zfile.extractall()
/usr/lib/python3.6/zipfile.py in init(self, file, mode, compression, allowZip64)
1111             while True:
1112                 try:
-> 1113                     self.fp = io.open(file, filemode)
1114                 except OSError:
1115                     if filemode in modeDict:
FileNotFoundError: [Errno 2] No such file or directory: '/Brats_2018/MICCAI_BraTS_2018_Data_Training.zip'
how to give datapath?
please help me
thanking you.

Make sure your files are located at your datapath:
!ls -l dataset_path


Support diagnostics tools

The new diagnostics tools window in VS 2015 provides information on cpu, memory and events while debugging.
It works in C++ and .NET project types, which hopefully means it was designed with the extensibility required to support other languages such as Python.

Of particular interest is the inline performance information that is displayed when stepping through the code (the 3ms elapsed in the above screenshot).

We're closing old issues with no recent activity. If this is still important, please open a new issue.


Feature/rwa 370 improve functional tests

https://tools.hmcts.net/jira/browse/RWA-370

PR draft used to try out the spring-rest-data: https://github.com/hmcts/wa-workflow-api/pull/162/files

I close this PR because it does not build on Preview. I created a new PR here: https://github.com/hmcts/wa-workflow-api/pull/171


Fix broken calls to offload_task

The 'locate' plugin was broken, calls to offload_task were passed the incorrect function handle.
@matmair another candidate for a testing framework for the plugins - the "sample" locate plugin here should be used to validate functionality.

@SchrodingersGat there are some plugings that need coverage. I suggest those are the once that will break if anything changes #2992 we just can't merge in such important places without having coverage - it always comes back to bite us.

I will try to tackle that one today or tomorrow.

@matmair I'm doing coverage for the locate plugin now :)

@matmair FYI using the new 'metadata' field is a nice way to mock plugin functionality for unit testing!


refactor(deno): separate bootsrap file from index.ts

Codecov Report

Merging #14 (da147b2) into master (0b4c652) will increase coverage by 0.02%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##           master      #14      +/-   ##
==========================================
+ Coverage   73.94%   73.97%   +0.02%
==========================================
  Files          61       61
  Lines        2775     2770       -5
  Branches       30       30
==========================================
- Hits         2052     2049       -3
+ Misses        723      721       -2

Impacted Files
Coverage Δ

crates/deno/script/deps/index.ts
100.00% <ø> (+10.00%)
:arrow_up:

crates/deno/src/lib.rs
82.50% <100.00%> (+0.92%)
:arrow_up:

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


MacOs file watcher

Work in progress
Initial implementation for MacOs file watcher.

I'll merge this as is, and will follow up on the notes in a following PR.


Grouping extentions

I want to group the BOLD, ITALIC, UNDERLINE extensions under category, STYLES, is there any option?

@Leecason why dis you close this?


day16_weijing

Checklist

[x] You have included a thumbnail image
[x] You have created a new Markdown file to describe your map
[x] You have put at least your name and the map day in the pull request

Hello Mjumbe, thank you so much! I never realised I was spelling it wrong. I have corrected it, thank you!