resolver struggles

using uv-0.4.18
$ uv pip install tensorrt_llm~=0.12 --pre --extra-index-url https://pypi.nvidia.com
Collecting uv
  Downloading uv-0.4.18-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (12.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 12.9/12.9 MB 63.3 MB/s eta 0:00:00
Installing collected packages: uv
Successfully installed uv-0.4.18
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv
  x No solution found when resolving dependencies:
  `-> Because there is no version of nvidia-cudnn-cu12{platform_machine == 'x86_64' and platform_system == 'Linux'}==<IP_ADDRESS> and
      torch==2.4.0 depends on nvidia-cudnn-cu12{platform_machine == 'x86_64' and platform_system == 'Linux'}==<IP_ADDRESS>, we can conclude
      that torch==2.4.0 cannot be used.
      And because only the following versions of torch are available:
          torch<2.4.0a0
          torch>=2.4.0
      and tensorrt-llm>=0.12.0 depends on torch>=2.4.0a0,<=2.4.0, we can conclude that tensorrt-llm>=0.12.0 cannot be used.
      And because only the following versions of tensorrt-llm are available:
          tensorrt-llm<=0.12.0
          tensorrt-llm==0.13.0.dev2024081300
          tensorrt-llm==0.13.0.dev2024082000
          tensorrt-llm==0.13.0.dev2024082700
          tensorrt-llm==0.13.0.dev2024090300
          tensorrt-llm==0.13.0
          tensorrt-llm==0.14.0.dev2024091000
          tensorrt-llm==0.14.0.dev2024091700
          tensorrt-llm==0.14.0.dev2024092400
          tensorrt-llm==0.14.0.dev2024092401
          tensorrt-llm==0.14.0.dev2024100100
      and you require tensorrt-llm>=0.12, we can conclude that your requirements are unsatisfiable.

      hint: `tensorrt-llm` was found on https://pypi.nvidia.com/, but not at the requested version (all of:
          tensorrt-llm>0.12.0,<0.13.0.dev2024081300
          tensorrt-llm>0.13.0.dev2024081300,<0.13.0.dev2024082000
          tensorrt-llm>0.13.0.dev2024082000,<0.13.0.dev2024082700
          tensorrt-llm>0.13.0.dev2024082700,<0.13.0.dev2024090300
          tensorrt-llm>0.13.0.dev2024090300,<0.13.0
          tensorrt-llm>0.13.0,<0.14.0.dev2024091000
          tensorrt-llm>0.14.0.dev2024091000,<0.14.0.dev2024091700
          tensorrt-llm>0.14.0.dev2024091700,<0.14.0.dev2024092400
          tensorrt-llm>0.14.0.dev2024092400,<0.14.0.dev2024092401
          tensorrt-llm>0.14.0.dev2024092401,<0.14.0.dev2024100100
          tensorrt-llm>0.14.0.dev2024100100,<1.dev0
      ). A compatible version may be available on a subsequent index (e.g., https://pypi.org/simple). By default, uv will only consider
      versions that are published on the first index that contains a given package, to avoid dependency confusion attacks. If all
      indexes are equally trusted, use `--index-strategy unsafe-best-match` to consider all versions from all indexes, regardless of the
      order in which they were defined.

whereas pip installs just fine:
pip install tensorrt_llm~=0.12 --pre --extra-index-url https://pypi.nvidia.com

I'm installing into the nvidia/cuda:12.5.1-devel-ubuntu22.04 docker image.
here is the full repro:
docker run -it --gpus all --ipc=host --ulimit memlock=-1 --ulimit stack=67108864 nvidia/cuda:12.5.1-devel-ubuntu22.04

apt-get update && apt-get -y install python3.10 python3-pip python-is-python3 openmpi-bin libopenmpi-dev wget git git-lfs unzip jq
export UV_SYSTEM_PYTHON=1
pip install uv
# uv pip install torch==2.4.0
uv pip install tensorrt_llm~=0.12 --pre --extra-index-url https://pypi.nvidia.com

if I manually do this first:
uv pip install torch==2.4.0

then the resolver works. somehow it can't figure out it can install torch==2.4.0

Did you try following the hint after the error?

A compatible version may be available on a subsequent index (e.g., https://pypi.org/simple). By default, uv will only consider versions that are published on the first index that contains a given package, to avoid dependency confusion attacks. If all indexes are equally trusted, use --index-strategy unsafe-best-match to consider all versions from all indexes, regardless of the order in which they were defined.

More information in the documentation.

and then it fails again doing another pip install:
git clone https://github.com/NVIDIA/TensorRT-Model-Optimizer/
cd TensorRT-Model-Optimizer/llm_ptq/
uv pip install -r requirements.txt

 Updated https://github.com/Dao-AILab/flash-attention.git (53a4f34)
error: Build backend failed to determine requirements with `build_wheel()` (exit status: 1)
--- stdout:

--- stderr:
Traceback (most recent call last):
  File "<string>", line 14, in <module>
  File "/root/.cache/uv/builds-v0/.tmpG2T258/lib/python3.10/site-packages/setuptools/build_meta.py", line 332, in get_requires_for_build_wheel
    return self._get_build_requires(config_settings, requirements=[])
  File "/root/.cache/uv/builds-v0/.tmpG2T258/lib/python3.10/site-packages/setuptools/build_meta.py", line 302, in _get_build_requires
    self.run_setup()
  File "/root/.cache/uv/builds-v0/.tmpG2T258/lib/python3.10/site-packages/setuptools/build_meta.py", line 503, in run_setup
    super().run_setup(setup_script=setup_script)
  File "/root/.cache/uv/builds-v0/.tmpG2T258/lib/python3.10/site-packages/setuptools/build_meta.py", line 318, in run_setup
    exec(code, locals())
  File "<string>", line 7, in <module>
ModuleNotFoundError: No module named 'torch'
---
  Caused by: This error likely indicates that git+https://github.com/Dao-AILab/flash-attention.git#subdirectory=csrc/rotary depends on torch, but doesn't declare it as a build dependency. If git+https://github.com/Dao-AILab/flash-attention.git#subdirectory=csrc/rotary is a first-party package, consider adding torch to its `build-system.requires`. Otherwise, `uv pip install torch` into the environment and re-run with `--no-build-isolation`.

it messes something up here with PYTHONPATH perhaps, since:
python -c "import torch"

works just fine.
And again switching to pip works fine as well.
for context: I'm trying to build a simpler and faster version of https://github.com/NVIDIA/TensorRT-Model-Optimizer/blob/main/docker/Dockerfile replacing s/pip/uv pip/ - hence the same issue.

Similarly, flash-attention notoriously cannot be used with build isolation (see #2252). More details in the documentation.
There's a dedicated hint for this too

Caused by: This error likely indicates that git+https://github.com/Dao-AILab/flash-attention.git#subdirectory=csrc/rotary depends on torch, but doesn't declare it as a build dependency. If git+https://github.com/Dao-AILab/flash-attention.git#subdirectory=csrc/rotary is a first-party package, consider adding torch to its build-system.requires. Otherwise, uv pip install torch into the environment and re-run with --no-build-isolation.

thank you for the hints, @zanieb
I have a feature request then: can we have a new env var that if set makes uv work exactly like pip so in any situation where pip succeeds uv pip will succeed?
I'm sort of sitting on the fence here, wanting to use uv for its speed, but don't have the time to constantly figure out the more precise way uv works and adding flags and env vars in too many places. That was the main reason I hardly every run conda install these days, because 99.999% of the time pip does the right thing out of the box, and conda was making things too restrictive and prescriptive.

I don't think you should need to constantly figure things out, the differences are described thoroughly in the compatibility document. I don't think we can / will provide a flag that makes uv "act exactly like pip" — we usually have strong justifications for differing on our defaults. It's an interesting suggestion though.

but you're uv's core developer, whereas, we, users, want things to just work because we have so many more things to figure and if there is a tool that creates less friction at a cost of slower speed I'll choose that over the much faster tool that ends up costing me a lot more time and the limited brain juice to constantly lookup docs and deal with edge cases.
Moreover I most likely will figure things out, but not everybody on my team will and they will complain and then I will need to spend even more time supporting them.
My intuition is that for a great uv adoption, the first step should be: exactly the same behavior as pip but faster - then let people optimize when there is an actual need to do so.
"Keep simple things simple, and difficult things doable" or something of sorts is a good motto some projects have

For what it’s worth, that build isolation behavior you’re seeing (the second error you referenced) will almost certainly be true in future versions of pip too. They have not made the PEP 517 standard a default yet.

I think for now I will just stick to pip when I need to try out something new and massive like the huge dependencies of nvidia's packages and use uv in repetitive situations where everybody saves time and one time figuring out saves the time repeatedly on subsequent runs of the same install recipe.


Rule option to not run in time frame

Hi, is there an option to not run a rule in a specified time frame?
Eg. this rule does not need to run between 00.00 and 03.00 every sunday.
Thanks in advance.

I have developed this functionality, will raise a pull request soon

Cool, thanks.


indexing started + indexing finished

Make web worker tell parent window when indexing is starting and indexing is finished.

Only console.logging, but working.


Search feature

Extracted from #84.
Leaving intermediary commits (I cleaned up several) as I went back and forth between ideas/implementations and I'd like to keep them.

Rebased with master and fixed conflict.


Update README.md

Coverage remained the same at 100.0% when pulling 588618655dbe0e2b2cb135961e3df7edf5b40be4 on harrymitchinson-patch-1 into 61f2e65634d16a8044b5e78c3741e23188904072 on master.


1174 set log level to debug in golang

Tested manually and seems like works
Checklist (if applicable):

[X] Tested (manually, unit tested, etc.)
[ ] Docs updated

We want to go through all of the log statements we have today and change non-essential stuff to DEBUG instead of INFO like it is today. We still want to log all of the levels if the right argument is passed.


If a user is a mentor add them to the mentors group in discourse

Feature
Why is this feature being added?

If a user signs up as a mentor we can automatically add them to the mentors list in discourse, giving them special permissions and a title.
What should your feature do?
Modify the SSO payload to check if a user is a mentor.
If they are add add_groups: mentors to the payload.
Ref: https://meta.discourse.org/t/official-single-sign-on-for-discourse/13045
This is gonna be a hard one to test so as long as the payload looks correct we'll test once live. #YOLO

I'll give this 1 a try if it's still available

@ianroberts131 all yours!


Added German translation.

@ostcar can also merge this.

For the future. You can merge translation files without my review.


URL changed even if canActivate returns false

As the title says, the URL changes even if you try to access a controller that has a defined canActivate method which always returns false. It doesn't perform the navigation (as expected), but the URL does change.
Here's a Plunker: http://plnkr.co/edit/IqRZHLc28uNG3nuNTRCb

Any workaround?


⚠ St. Lawrence Global Observatory CKAN has degraded performance

In fff37c4, St. Lawrence Global Observatory CKAN (https://catalogue.ogsl.ca/en/) experienced degraded performance:

HTTP code: 200
Response time: 9547 ms

Resolved: St. Lawrence Global Observatory CKAN performance has improved in 728ea49 after 5 minutes.


Any plan to shift to CMake?

Originally reported on Google Code with ID 677
Spent yesterday hacking TCMalloc into our SWIG'd C++ Java libraries. Saw a whopping
20x performance increase for an 8 thread test case. The large performance increase
is because we force all C++ memory allocations to allocate memory from the Java heap
to adhere to the -Xmx JVM flag.

Unfortunately, the work isn't very portable to Windows since TCMalloc's automake build
system isn't compatible with our CMake build system. I ended up following the Chromium
project's lead and simply copied in the necessary config.h and tcmalloc.h headers to
get it to work.

Is there any plan, or does anyone know of a CMakeLists.txt that works for TCMalloc?
Rather not re-invent the wheel.

Also, would TCMalloc be interested in a configuration mode that uses the JVM as a SysAllocator?

Reported by coleb2 on 2015-03-19 16:18:08

Closing stale ticket.

I'd like to contribute this soon. Almost done with it on my fork.


🌐 Add Persian translation for docs/fa/docs/features.md

Hi, this is the translation of the features page for Persian language.

📝 Docs preview for commit 43b21064906d1d86257540f637d1bb250dd9f896 at: https://649a23fab14d051907046035--fastapi.netlify.app

After a long time I just updated the page again (:
I noticed some changes in the original translation and tried to update the text accordingly.
For every update in the original translation, it is necessary for all other languages to notice it and update it, where do you inform about the new changes for other translators? @tiangolo

@aminalaee ?

@tiangolo ?

Awesome, thanks @amirilf! 🚀
And thanks for the reviews @aminkhani, @erfan-rfmhr, @aminalaee! 🍰


Can't Install Latest Head With Brew

I was able to install head with brew before, but now I get this error. :(
Could someone help?
Thanks!
$ brew install tesseract --HEAD
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
No changes to formulae.
==> Using the sandbox
==> Cloning https://github.com/tesseract-ocr/tesseract.git
Cloning into '/Users/user/Library/Caches/Homebrew/tesseract--git'...
remote: Counting objects: 724, done.
remote: Compressing objects: 100% (694/694), done.
remote: Total 724 (delta 88), reused 163 (delta 12), pack-reused 0
Receiving objects: 100% (724/724), 3.74 MiB | 0 bytes/s, done.
Resolving deltas: 100% (88/88), done.
Checking connectivity... done.
==> Checking out branch master
==> Downloading https://github.com/tesseract-ocr/tesseract/commit/b18cad4.patch
######################################################################## 100.0%
==> Patching
==> Applying b18cad4.patch
patching file configure.ac
Hunk #1 FAILED at 220.
1 out of 1 hunk FAILED -- saving rejects to file configure.ac.rej
patching file api/Makefile.am
Hunk #1 FAILED at 45.
1 out of 1 hunk FAILED -- saving rejects to file api/Makefile.am.rej
Error: Failure while executing: /usr/bin/patch -g 0 -f -p1 -i /private/tmp/tesseract--patch-20170502-16295-cpuv7w/b18cad4.patch

Try without the patch. Maybe that change has already been applied.
On May 2, 2017 8:13 PM, "jsl303"<EMAIL_ADDRESS>wrote:

I was able to install head with brew before, but now I get this error. :(
Could someone help?
Thanks!
$ brew install tesseract --HEAD
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
No changes to formulae.
==> Using the sandbox
==> Cloning https://github.com/tesseract-ocr/tesseract.git
Cloning into '/Users/user/Library/Caches/Homebrew/tesseract--git'...
remote: Counting objects: 724, done.
remote: Compressing objects: 100% (694/694), done.
remote: Total 724 (delta 88), reused 163 (delta 12), pack-reused 0
Receiving objects: 100% (724/724), 3.74 MiB | 0 bytes/s, done.
Resolving deltas: 100% (88/88), done.
Checking connectivity... done.
==> Checking out branch master
==> Downloading https://github.com/tesseract-ocr/tesseract/commit/b18cad4.
patch
########################################################################
100.0%
==> Patching
==> Applying b18cad4
https://github.com/tesseract-ocr/tesseract/commit/b18cad4cda217c15b0aad333ef7200024d2ecac3
.patch
patching file configure.ac
Hunk #1 https://github.com/tesseract-ocr/tesseract/issues/1 FAILED at
220.
1 out of 1 hunk FAILED -- saving rejects to file configure.ac.rej
patching file api/Makefile.am
Hunk #1 https://github.com/tesseract-ocr/tesseract/issues/1 FAILED at
45.
1 out of 1 hunk FAILED -- saving rejects to file api/Makefile.am.rej
Error: Failure while executing: /usr/bin/patch -g 0 -f -p1 -i
/private/tmp/tesseract--patch-20170502-16295-cpuv7w/b18cad4.patch
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/tesseract-ocr/tesseract/issues/864, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AE2_o3IfozN9lAP88gjs9wh-NvF1aYnUks5r10D5gaJpZM4NOPNX
.

Thanks, do you know how to tell brew to skip the patch?

The brew formulae is for version 3.05, while the HEAD is 4.00 (alpha).

Thanks, wouldn't adding --head option like "brew install tesseract
--HEAD" download the latest head from the Github?
I'm wondering how to tell brew to skip the patch...

Dunno. I don't have a a Mac...

see https://github.com/Homebrew/homebrew-core/blob/master/Formula/tesseract.rb

@zdenop, maybe a new release 3.05.01 would help making such patches unnecessary.

same here

@jsl303,
As you might already know, Homebrew's Formula can edit locally.
$ brew edit tesseract

If you want to skip the patch, comment out line 71-74, and save it.
( /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/tesseract.rb )
$ brew install tesseract --HEAD

or, wrapping patch block with 'if-end' block such like below.
--- a/Formula/tesseract.rb
+++ b/Formula/tesseract.rb
@@ -68,10 +68,12 @@ class Tesseract < Formula
   # remove on next release, > 3.05.00
   # upstream fix for building with OpenCL enabled
   # https://github.com/tesseract-ocr/tesseract/pull/814
+  if !build.head?
   patch do
     url "https://github.com/tesseract-ocr/tesseract/commit/b18cad4.patch"
     sha256 "10c59baa54c3406fcd03f36cd0f1e3cc2ba150f082d14f919274a541b3cff7b2"
   end
+  end

   def install
     if build.head?

My PR got merged. So, no need to edit Formula.
@jsl303, It should work with the following command.
$ brew update
$ brew install tesseract --HEAD

This issue can be closed. brew install tesseract --HEAD now works.

@stweil Please see the recent post at https://groups.google.com/forum/?utm_medium=email&utm_source=footer#!msg/tesseract-ocr/H9JmIRU2dQk/oMtSIvtHAwAJ regarding problem with install of training tools on mac os. Thanks!

Please see the recent post ...

I need more information because I currently cannot reproduce the build problem (building training tools works for me with MacPorts and with Homebrew).


Fixed issue with new groups/members/IMs not working correctly

This should solve the issue in #115 and #61. As it uses events, is a nicer implementation than #64 as it is immediate and not delayed

Hmm, didn't mean to fork from develop, I meant to do it from Master... eek! I may need to re-work this again. Let me know


fix fetch job performance regression

This modifies indexes to improve performance of the fetch_job function.
Recently added features such as job priority and aborting jobs have introduced a performance regression.
It fixes that performance regression by updating an existing index and adding a new one so that the fetch_job function avoids sequential scans of the job table in both the outer and inner query.
It also contains an additional timing tweak to an acceptance test to make it less flaky

Successful PR Checklist:

[x] Tests

[ ] (not applicable?)

[ ] Documentation

[ ] (not applicable?)

PR label(s):

[ ] https://github.com/procrastinate-org/procrastinate/labels/PR type%3A breaking 💥
[ ] https://github.com/procrastinate-org/procrastinate/labels/PR type%3A feature ⭐
[x] https://github.com/procrastinate-org/procrastinate/labels/PR type%3A bugfix 🕵
[ ] https://github.com/procrastinate-org/procrastinate/labels/PR type%3A miscellaneous 👾
[ ] https://github.com/procrastinate-org/procrastinate/labels/PR type%3A dependencies 🤖
[ ] https://github.com/procrastinate-org/procrastinate/labels/PR type%3A documentation 📚

Released, and added some migration notes:
https://github.com/procrastinate-org/procrastinate/releases/tag/2.15.0


SAP HCP predictive services, Visualize your predictive demo data set

Hi Abdel Dadouche,
At the outset I would like to thank you for the great work you have been doing in coming up with these tutorials on Predictive Analytics on SAP HANA. I've been working on these tutorials for about a week now and would like to ask you few questions and thus provide some feedback.
I am learning Predictive Analytics on SAP HANA to build a PoC on HANA to build an app that helps shoppers and merchants (Retailers) to predict what the customer is likely to buy and accordingly give him similar inputs. If he buys bread regularly I want to give him a discount on his regular bread and offer him other discounts on Ketchup, Cheese and such similar products. Some thing similar to what we see on Amazon. Based on his past buying pattern the merchant should  be able to offer him discounts in real time on what he is scanning in the store. And the customer should get inputs on his smart phone as to on what products discounts are available - All this in the store while he is shopping.
My background is I am a data modeller a BW and HANA Consultant. I do not have any experience in HTML, JAVA, JSON, ODATA, REST and what ever has been mentioned here.
Now the question I have is can I (a person without any programming experience) build an app using these tutorials on SAP HANA Predictive Analytics and build an app?
Should a person have any experience on any of these programming languages to build these apps on SAP HANA?
Please advise. It would be great if you can refer me to some right tutorials or user guides from where I can learn and start.
Once again thanks a lot for your time in coming up these tutorials. I've learnt a great deal.
Thank you.
Regards,
Pavan.

Hi pavanmulpur,
The intent of these tutorials is to give users the ability to start using these features whatever their background is.
It is not intended to explain everything in details, because the format is not appropriate for this, and this why sometime "we" use some shortcuts or don't intentionally provide all the explanations (as this also force the users to search for more details on the topic).
People learn in different ways, read, watch listen. Our intent is not to replace formal training (classroom or online), but really to give any users the ability to "try it out" with no fuss and quickly, and then let them start and find their own journey.
You will find interesting content on the openSAP web site like the UI5 training for example (https://open.sap.com/courses/ui51) or other tutorials using our tutorial navigator (http://www.sap.com/developer/tutorials.html).
Regards


Sass meta.apply doesn't work with vite

Describe the bug
I'm trying to use new feature meta.apply($mixin) it's work fine with plain build scss via
./node_modules/.bin/sass ./src/mixins.scss output.css but doesn't work via run vite or via vite build
mixins.scss looks like
@use "sass:map";
@use "sass:meta";

@mixin someMixin() {
  background: blue;
}

.blue {
  @include meta.apply(meta.get-mixin("someMixin"));
}

output
.blue {
  background: red;
  color: blue;
}

It's works fine in scss playground.
https://sass-lang.com/playground/#eJwzNHQoLU5VUCpOLC62yk0sULLmQhZILUkEinA55GZWZOYpFOfnpvqCWBqaCtVcCgpJicnZ6UX5pXkpVgpJOaWp1ly1XFx6IBZY2iEzLzmnNCVVAWSMXmJBQU6lBpiZnlqiCzZRQwlupJKmJlA7AP6ULtQ=
Reproduction
https://stackblitz.com/edit/vitejs-vite-bvdyzt?file=src%2FApp.vue
Steps to reproduce
No response
System Info
System:
    OS: Linux 5.0 undefined
    CPU: (8) x64 Intel(R) Core(TM) i9-9880H CPU @ 2.30GHz
    Memory: 0 Bytes / 0 Bytes
    Shell: 1.0 - /bin/jsh
  Binaries:
    Node: 18.18.0 - /usr/local/bin/node
    Yarn: 1.22.19 - /usr/local/bin/yarn
    npm: 9.4.2 - /usr/local/bin/npm
    pnpm: 8.10.5 - /usr/local/bin/pnpm
  npmPackages:
    @vitejs/plugin-vue: ^4.5.2 => 4.6.0
    vite: ^5.0.8 => 5.0.10

Used Package Manager
npm
Logs
No response
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 vuejs/core 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.

Do you mean the Error: Bad state: Can't access __parent outside of a module. error? Seems like it's caused by Vite using the deprecated sass render method. I'm not sure if this is intentional, but I'll report this upstream to check.
If it's intentional, the progress to check when we migrate to the new compileString api is https://github.com/vitejs/vite/issues/7116. So I'll close this for now in favour of the two things above.

Thanks for response. Yeah, this is it.
I found answer in your attached links.
I have just change sass to sass-embedded
https://github.com/vitejs/vite/issues/6734
It works for me like a charm


Use Graphs.jl API to access src and dst of an edge

Instead of accessing the struct fields, use src(e) and dst(e)
Closes #80

Codecov Report
Base: 80.38% // Head: 80.21% // Decreases project coverage by -0.18% :warning:

Coverage data is based on head (441691e) compared to base (664e46e).
Patch coverage: 50.00% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##           master     #100      +/-   ##
==========================================
- Coverage   80.38%   80.21%   -0.18%
==========================================
  Files           4        4
  Lines         571      571
==========================================
- Hits          459      458       -1
- Misses        112      113       +1

Impacted Files
Coverage Δ

src/interaction.jl
18.25% <0.00%> (ø)

src/recipes.jl
97.09% <100.00%> (-0.42%)
:arrow_down:

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

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Feeds: Add elections.json feed for Dewey

🙏  Thanks for the JSON feed!
@earthboundkid the ID in the feed is the permalink for the post - is that actually permanent? Is that the internal ID used as well? I imagine URL slugs can change on title update or manual edits. Dewey will be looking for updates to content over time and will need a primary key of sorts to find the latest content in the feed.
Also, a nice to have would be being able to retrieve each post by it's ID - /feeds/{id}.json or xml. It's not critical but means not having to load the entire data feed to check for updates to each post.


Consolidate App Service Export services to just secure or just non-secure for TAF tests

Currently the TAF secure compose file has both the secure and non-secure App Service export services (http & mqtt)
https://github.com/edgexfoundry/edgex-compose/blob/6f9eebdf77506cf97272d7f0462e8a1543fa0ec8/taf/docker-compose-taf.yml#L174-L318
https://github.com/edgexfoundry/edgex-compose/blob/6f9eebdf77506cf97272d7f0462e8a1543fa0ec8/taf/docker-compose-taf.yml#L174-L318
With the new Secure Consul access tokens the app service have to be run as "Secure" so it doesn't make sense to have both versions. Secure compose should have just one app-service-export-http and just one app-service-export-mqtt

@cherrycl , @cloudxxx8 , how would this impact the TAF tests?
Both secure and none-secure compose file would just have
app-service-export-http and  app-service-export-mqtt,
The -secrets versions would be removed.

Hi @cloudxxx8 and @cherrycl  from the edgex-compose PR https://github.com/edgexfoundry/edgex-compose/pull/53, the asc-x-secret version have been changed to extend from its base version asc-x.  Please adjust or change the TAF test scripts accordingly and let us know how it fits.  Thanks! -Jim


Remove cassandra and kafka runtime tests

The respective functionality is already tested by unit tests in proxylib/ and in the k8s tests (kafka only).
See commits for details.

/test-runtime


Fill GitHub token pool on startup

We're still seeing a few "Token pool is exhausted" errors at the moment the dynos are coming up. I'm wondering if this might help.

Warnings

:warning:
This PR modified the server but none of its tests. That's okay so long as it's refactoring existing code.

Messages

:book:
:sparkles: Thanks for your contribution to Shields, @paulmelnikow!

  Generated by :no_entry_sign: dangerJS against 083ec459e65c481e1d5c5f4561bc1498c8aa963a


logging sinks exports metrics are not produced

Exporter does not seem to produce metrics related to logging sink exports

logging.googleapis.com/exports/byte_count
logging.googleapis.com/exports/error_count
logging.googleapis.com/exports/log_entry_count

For example for "log_entry_count" I can see metrics aggregated by resources, for example   stackdriver_RESOURCE_logging_googleapis_com_log_entry_count )  whichI I believe,  is aggregation log_entry_count by resources  ( number of ingested log entries  per severity).
I do not see prometheus metrics that would represent  stackdriver metric specifically related to number of entries processed by logging sink ( exports/log_entry_count). I can see the proper data in Monitoring/Metrics Explorer in the project I run exporter against

It looks like "missing" metrics are successfully retrieved with utilization of monitoring.metrics-offset  parameter


Can't override default glyphicon

$('#input').validator({
'feedback':{
success: 'glyphicon-search',
error: 'glyphicon-remove'
}
});
when pass validation,this input still has glyphicon-ok icon,why?

http://jsbin.com/pivagudina/edit?html,css,js,output
It works. Not sure what #input is in your example, but it needs to be the form element.

Hello! I'm experiencing the same issue. I'm not able to override the default icons with, say, other glyphicon icons or even font-awesome icons, via the data-feedback attribute. What should I write? According to http://1000hz.github.io/bootstrap-validator/#validator-options, I'm currently using:
<form [...] data-toggle="validator" data-feedback="feedback: {success: 'glyphicon-firsticon', error: 'glyphicon-secondicon'}">

Thank you, nice plugin!

You need to initialize the plugin via js to use the feedback option. It won't work via the data API.

Thank you for such a fast response!
I've ended modifying directly the javascript code to switch glyphicon-ok and glyphicon-error to fa-check and fa-times. Although I'ts a bad practice, seems easier and faster than switching all my forms from data-toggle to javascript initialization. Would be nice to add data-success and data-error attributes. See ya!


Added disk provisioning type support for VMWare

Description
This PR adds the ability to create thick and sparse disks using VMWare
A global variable (disk.provisioning.type.strictness) has been added to select if disk provisioning types will be strictly adhered to, meaning if a storage pool is not capable of creating the specific disk provisioning type, the pool will not be selected for the creation of the VM.
StoragePool capabilities are determined when the pool is added to Cloudstack and a new API is added ( updateStorageCapabilities(poolId) ) to update the hardware acceleration capability of storage pools if needed.

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[x] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[x] Major
[ ] Minor

Screenshots (if appropriate):
How Has This Been Tested?

Marvin tests have been added and manual tests have been done using NFS without hardware acceleration and an ISCSI datastore.
Create a thin/sparse/thick disk/service offering, set the global var to true, depending on the offering selected, the disks should be created in the correct storage pool with the correct disk provisioning type.
If the global var is set to false, the disk will be created in any storage pool and if the pool supports the disk provisioning type it will be used, otherwise thin will be selected.

@Spaceman1984 you want to open it under apache/cloudstack?


content type of http response is wrong when return grpc error through grpc gateway

How to find this issue:

use example in rk-boot: https://github.com/rookie-ninja/rk-boot/tree/main/example/web/grpc
enable grpc.enableRkGwOption in boot.yaml
return an error in Hello function in main.go
go run main.go
curl -v "http://<IP_ADDRESS>:8080/v1/hello?hi="

*   Trying <IP_ADDRESS>:8080...
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 8080 (#0)
> GET /v1/hello?hi= HTTP/1.1
> Host: <IP_ADDRESS>:8080
> User-Agent: curl/7.77.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 400 Bad Request
< Content-Type: application/json
< Content-Type: application/grpc   <---  here
< X-Demo-App-Domain: *
< X-Demo-App-Name:
< X-Demo-App-Unix-Time: 2022-04-04T20:33:49.565908+08:00
< X-Demo-App-Version:
< X-Demo-Received-Time: 2022-04-04T20:33:49.565908+08:00
< X-Request-Id: 83731756-78c3-4723-9c9b-99f894b69408
< Date: Mon, 04 Apr 2022 12:33:49 GMT
< Content-Length: 74
<
* Connection #0 to host <IP_ADDRESS> left intact
{"error":{"code":400,"status":"Bad Request","message":"空","details":[]}}%

Hi @ludanfeng ,
I've reproduced your example as bellow based on https://github.com/rookie-ninja/rk-boot/tree/main/example/web/grpc
boot.yaml
grpc:
  - name: greeter                                          # Required
    enabled: true                                          # Required
    port: 8080                                             # Required
    enableReflection: true                                # Optional, default: false
    enableRkGwOption: true                                # Optional, default: false

main.go
// Copyright (c) 2021 rookie-ninja
//
// Use of this source code is governed by an Apache-style
// license that can be found in the LICENSE file.

package main

import (
	"context"
	"errors"
	"github.com/rookie-ninja/rk-boot/v2"
	"github.com/rookie-ninja/rk-demo/api/gen/v1"
	"github.com/rookie-ninja/rk-grpc/v2/boot"
	rkgrpcerr "github.com/rookie-ninja/rk-grpc/v2/boot/error"
	"google.golang.org/grpc"
)

func main() {
	boot := rkboot.NewBoot()

	// register grpc
	entry := rkgrpc.GetGrpcEntry("greeter")
	entry.AddRegFuncGrpc(registerGreeter)
	entry.AddRegFuncGw(hello.RegisterGreeterHandlerFromEndpoint)

	// Bootstrap
	boot.Bootstrap(context.TODO())

	// Wait for shutdown sig
	boot.WaitForShutdownSig(context.TODO())
}

func registerGreeter(server *grpc.Server) {
	hello.RegisterGreeterServer(server, &GreeterServer{})
}

//GreeterServer GreeterServer struct
type GreeterServer struct{}

// Hello response with hello message
func (server *GreeterServer) Hello(_ context.Context, _ *hello.HelloRequest) (*hello.HelloResponse, error) {
	return nil, rkgrpcerr.Internal("", errors.New("")).Err()
}

Example
Restful API
$ curl -v "http://<IP_ADDRESS>:8080/v1/hello?hi="
*   Trying <IP_ADDRESS>...
* TCP_NODELAY set
* Connected to <IP_ADDRESS> (<IP_ADDRESS>) port 8080 (#0)
> GET /v1/hello?hi= HTTP/1.1
> Host: <IP_ADDRESS>:8080
> User-Agent: curl/7.64.1
> Accept: */*
>
< HTTP/1.1 500 Internal Server Error
< Content-Type: application/json                    <------- content-type is application/json
< Date: Mon, 04 Apr 2022 14:37:59 GMT
< Content-Length: 167
<
* Connection #0 to host <IP_ADDRESS> left intact
{"error":{"code":500,"status":"Internal Server Error","message":"","details":[{"code":13,"status":"Internal","message":"[from-grpc] "},{"code":2,"status":"Unknown"}]}}

gRPC request
grpcurl -v -plaintext localhost:8080 api.v1.Greeter.Hello

Resolved method descriptor:
rpc Hello ( .api.v1.HelloRequest ) returns ( .api.v1.HelloResponse );

Request metadata to send:
(empty)

Response headers received:
(empty)

Response trailers received:
content-type: application/grpc                           <------- content-type is application/grpc
Sent 0 requests and received 0 responses
ERROR:
  Code: Internal
  Message:
  Details:
  1)	{"@type":"type.googleapis.com/rk.api.v1.ErrorDetail","code":13,"message":"[from-grpc] ","status":"Internal"}
  2)	{"@type":"type.googleapis.com/rk.api.v1.ErrorDetail","code":2,"status":"Unknown"}

Explanation
In rk-grpc, the gateway related handler was mainly copied from default HTTP handler except unmarshaling errors  from proto error to json type error.
As a result, here is how rk-grpc handle content-type header/metadata.

grpc-gateway request
rk-grpc will set content-type to application/json which is the same as grpc-gateway do.

grpc request
rk-grpc will set content-type to application/grpc which is default action of gRPC.

Closing issue


User can take break for few times from the goals...

User can take break for few times from the goals...

I want to work on issues under JWOC


Fix personal_sign parameters

Summary & Motivation
personal_sign function parameters are flipped incorrectly, the first parameter is the data to be signed and the second parameter is the address, this fixes that.
How I Tested These Changes
Did you add a changeset?
If updating one of our packages, you'll likely need to add a changeset to your PR. To do so, run pnpm changeset. pnpm changeset will generate a file where you should write a human friendly message about the changes. Note how this (example) includes the package name (should be auto added by the command) along with the type of semver change (major.minor.patch) (which you should set).
These changes will be used at release time to determine what packages to publish and how to bump their version. For more context see this comment.

<3 the contribution


If schedular is stateless, how do I invoke the stop() function at a later time?

I am sorry to be asking a rather simple question here, I tried and went through the codebase but I figured I still need some input from your side.
I have a simple use case. I have a node.js CLI app. When I run a certain command, I schedule a few jobs and the node execution that queues and starts the jobs exits of course. Now, I would like to have another CLI command let's say myapp stop that should be able to stop all previously enqueued jobs. As per my understanding, the new node process executing the myapp stop command would have no link whatsoever to anything the toad schedular is doing in memory. Take a look at this snippent.
export const beginScheduledJobs = (): void => {
  // App must be configured.
  if (getConfig('state') !== 'ready') {
    return;
  }

  // Instantiate new schedular.
  const scheduler = new ToadScheduler();

  // Queue some jobs
  scheduler.addSimpleIntervalJob(idleCheckJob);
};

/**
 * Stops all scheduled jobs.
 */
export const stopScheduledJobs = (): void => {
  // What should I do here ?
};

As you can see, the beginScheduledJobs() method would be called by my apps start command, and the stopScheduledJobs is to be called on-demand by the user later by my app's stop command. Any help would be greatly appreciated.

@kibertoad The only thing I have in mind, which feels a bit of a hack, is to use an external json file to set a start stop flag. Although I use a json file for config etc anyway. So what I have in mind is that my stop command would set a stop flag in the json config file, and then each of my running jobs, before doing the actual job would check for the flag and abandon if the flag is set. Something along those lines...

@khan-zia Can you explain a bit more what you are trying to achieve? If you want to stop all jobs at once, you can call scheduler.stop(), and this will stop all of the jobs. And if you want to stop some specific jobs, you can store their instances somewhere, or lookup the one you need via scheduler.getAllJobs()

@kibertoad my use case is a bit different. I have a node CLI. When I invoke the myapp start command, I schedule some background jobs. But I don't want to keep the terminal occupied or require my user to keep the terminal open so I have to exit the main process that just executed the myapp start command. To achieve this, I spawn a new child process, I run the schedular on the child and then I completely detach the child from the parent allowing the parent process to exit.
Now, the other command I have is myapp stop which allows my users to stop the background jobs. The only problem is, the new node process that executes the stop command, has no idea, no link whatsoever to the now independent process from the previous command, let alone having a reference to the toad schedular's object to call the .stop() method on. So what is your suggestion for such a use case?
PS.
I ended up writing a C program that accurately identifies the process running my jobs and kills it by PID. I invoke the C binary from node whenever a user tries the myapp stop command.

@khan-zia

So what is your suggestion for such a use case?

You can achieve this in a MacOS or Linux environment by using one or more named (FIFO) pipes.
Basically, you'd author your Node.js daemon (the one in which you do the toad-scheduler stuff) such that you initialize it with a path to a FIFO pipe. When something writes to the FIFO pipe, you do your shutdown sequence. You could add a second FIFO pipe to which your daemon could write some bytes when shutdown has completed.
Then, you'd author your myapp start program. This thing would be pretty basic; it'd just write something to stop pipe and then read from the completion pipe (if desired).

@khan-zia

So what is your suggestion for such a use case?

You can achieve this in a MacOS or Linux environment by using one or more named (FIFO) pipes.
Basically, you'd author your Node.js daemon (the one in which you do the toad-scheduler stuff) such that you initialize it with a path to a FIFO pipe. When something writes to the FIFO pipe, you do your shutdown sequence. You could add a second FIFO pipe to which your daemon could write some bytes when shutdown has completed.
Then, you'd author your myapp start program. This thing would be pretty basic; it'd just write something to stop pipe and then read from the completion pipe (if desired).

I ended up with something even more straightforward that just works regardless of the operating system or anything else. I wrote a small script in C that uniquely identifies the node.js process that's running in the background handling the toad schedular. I simply invoke the C binary by spawning a child process when myapp stop command is executed which in turn simply terminates the other node.js process running the schedular. That works perfectly for what I wanted.


Deleting a Post unit test

With the recent re-factoring of the admin/post/create and admin/post/create pages, the testPostsCanBeDeleted() on line 146 of PostTest.php is consistently failing. The UI/UX of the actual GUI works like it should, and the application functions properly. The test however fails. If anyone would like to jump in here that'd be awesome!
Contributors who I thought may be interested or have shown skill in this area:
@RDelorier @erikgall

i got it, if this is up for grabs. you just want the test deleted?

@lcrossan Actually, we just need that test to actually work. Right now, the functionality is commented out. But take a look and see what you can do!

You could skip the ui interaction and just do send the delete request directly and assert its no longer in the database.
@austintoddj if you ever want to skip a test until it's fixed then there is a markedSkippedTest function that will just show the test as skipped when running phpunit.

@RDelorier @erikgall Thanks for helping out with this guys, you rock!


Use an alternative form to mark oneof fields as required

Summary
Use an alternative and updated method to mark oneof fields as REQUIRED.
Closes: https://github.com/sigstore/protobuf-specs/issues/336
Release Note

Updated how oneof fields are marked as REQUIRED in the protobuf

Documentation
N/A

Dismissing my review, seems like this isn't WAI according to https://github.com/sigstore/sigstore-go/issues/63#issuecomment-2135585754

@haydentherapper yes, I did see in the other PR that this was fully WAI, I haven't had time to dig into this. My fear is that relying on annotations for verifying field behaviour may differ between clients :(


meta: add IPAddrs to the session info

close #3295

Codecov Report
Patch coverage: 52.50% and project coverage change: +0.04 :tada:

Comparison is base (26fe83d) 56.34% compared to head (a7d88be) 56.38%.

Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3464      +/-   ##
==========================================
+ Coverage   56.34%   56.38%   +0.04%
==========================================
  Files         149      149
  Lines       36242    36248       +6
==========================================
+ Hits        20419    20437      +18
+ Misses      13605    13600       -5
+ Partials     2218     2211       -7

Impacted Files
Coverage Δ

pkg/meta/interface.go
55.00% <ø> (ø)

pkg/meta/base.go
64.66% <40.00%> (+0.17%)
:arrow_up:

pkg/utils/utils.go
70.41% <53.12%> (-4.04%)
:arrow_down:

pkg/sync/cluster.go
25.64% <66.66%> (-1.95%)
:arrow_down:

... and 6 files with indirect coverage changes
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Not usable when apps are in fullscreen

For me it's kind of a deal breaker to have a quick shortcut when it doesn't work in fullscreen.
It seems Tauri doesn't support it as of now, but has an open issue to fix this. Could be worth keeping an eye on.
https://github.com/tauri-apps/tao/issues/189

Seems you've implemented something similar already, which works fine in dev mode. Odd that it hasn't been fixed in Tauri yet, as the issue has been open since Aug 2021.

Is there a fix for this in prod app?

As of now... no

Hey @youngkidwarrior , @toughyear , @valdemartti.
There's a fix for that implemented in the following repos:
https://github.com/ParthJadhav/Verve
https://github.com/kgoedecke/promptclip
I'll try to create a PR for the same in this repo.


README uses outdated syntastic standard assignment syntax

The documentation in syntax_checkers/README.md is using an outdated (and no longer supported) style Syntastic standard assignment
let g:syntastic_wordpress_phpcs_standard = "WordPress-Core"

The new version is
let g:syntastic_php_phpcs_args = '--standard=WordPress-Core'

I'm not sure when this changed.
Thanks for all the great work :+1:

@salcode
By new version do you mean that syntastic has changed the syntax?
We are using a custom syntax checker for WordPress and I am not sure what you mean by new syntax.

My apologies.  I need to remember not to open an issue after a late night of coding and wait until I have a chance to look at the problem with fresh eyes. :smile:
The problem was completely on my end.  I thought syntastic had changed the syntax but I was wrong.
Sorry for the false issue.

Not a problem at all and glad to know that you figured it out :)
Late night coding sessions, FTW ;)


Some HTML Attributes are not being mapped to camelCase

Hello,
I recently ran into an issue with my project where some HTML attributes are not contained in the src/attribute.json file and are not converted into camelCase as a result of the exclusion. I do not see a security concern that would cause these properties to be excluded and would like to know if the exclusions were intentional, and if anyone is willing to share the reasoning behind the exclusions before I add them in my code. The HTML properties in question are:

itemprop (itemProp) - https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/itemprop
itemscope (itemScope) - https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/itemscope
itemtype (itemType) - https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/itemtype

I included links to show that all 3 of these properties are valid HTML global attributes. Please let me know if I am overlooking something, or if there is an underlying reason these properties have been excluded from mapping in this project.
Thank you for your time and support on this project :) I would be willing to submit a PR with the new attributes if you agree they should be present in this project.
Have a nice afternoon.

Hi @tylerisvivid thanks for raising this issue
the attribute mapping was recently refactored to reduce bundle size, seems like the trick used to optimize bundle size doesn't work on item* attributes. I've created the PR to fix but if you have a more thorough test case it would be awesome


AgdaStdlib: 0.14 -> 0.15

Semi-automatic update generated by https://github.com/ryantm/nix-update tools. These checks were done:

built on NixOS
Warning: no binary found that responded to help or version flags. (This warning appears even if the package isn't expected to have binaries.)
found 0.15 with grep in /nix/store/6787gs55hpa46z4507ji4jz5za51lyqy-agda-stdlib-0.15
directory tree listing: https://gist.github.com/386f03ce4900379ef75d5d01bcc2cebb

cc @jwiegley @fuuzetsu @laMudri for review

Failure on x86_64-darwin (full log)
Attempted: AgdaStdlib
Partial log (click to expand)
cannot build derivation '/nix/store/l56jikcx47ywb3jqri4281w801qr8dxl-tasty-quickcheck-0.9.2.drv': 8 dependencies couldn't be built
cannot build derivation '/nix/store/dybn6p04hjjfj6xxpah1ghnva9g4qr8g-base-compat-0.9.3.drv': 4 dependencies couldn't be built
cannot build derivation '/nix/store/rbdj2a524xpclzpsmyr439c2p53x7scl-blaze-markup-<IP_ADDRESS>.drv': 9 dependencies couldn't be built
cannot build derivation '/nix/store/awf255sy5cjgv3wcvw0hglb33d1y73qm-blaze-html-<IP_ADDRESS>.drv': 10 dependencies couldn't be built
cannot build derivation '/nix/store/i18xy3li6ppl4zmn8pj4ycdra74pgpgw-gitrev-1.3.1.drv': 3 dependencies couldn't be built
100  303k    0  303k    0     0   412k      0 --:--:-- --:--:-- --:--:--  412k
unpacking source archive /private/tmp/nix-build-source.drv-0/v0.15.tar.gz
cannot build derivation '/nix/store/nrggjnbp3mnwl5hrdcrh93pi5lsvnvdc-Agda-2.5.3.drv': 28 dependencies couldn't be built
cannot build derivation '/nix/store/fpw79f57y53rkdfpm7pgzf73qpsjslkl-agda-stdlib-0.15.drv': 2 dependencies couldn't be built
error: build of '/nix/store/fpw79f57y53rkdfpm7pgzf73qpsjslkl-agda-stdlib-0.15.drv' failed

No attempt on aarch64-linux
The following builds were skipped because they don't evaluate on aarch64-linux: AgdaStdlib
No partial log is available.

Success on x86_64-linux (full log)
Attempted: AgdaStdlib
Partial log (click to expand)
 Checking Universe (/tmp/nix-build-agda-stdlib-0.15.drv-0/source/src/Universe.agda).
 Finished Universe.
Finished Everything.
installing
post-installation fixup
shrinking RPATHs of ELF executables and libraries in /nix/store/2c1d841x2f3a68cszmhpp3ngyh7v0kk6-agda-stdlib-0.15
strip is /nix/store/fzcs0fn6bb04m82frhlb78nc03ny3w55-binutils-2.28.1/bin/strip
patching script interpreter paths in /nix/store/2c1d841x2f3a68cszmhpp3ngyh7v0kk6-agda-stdlib-0.15
checking for references to /tmp/nix-build-agda-stdlib-0.15.drv-0 in /nix/store/2c1d841x2f3a68cszmhpp3ngyh7v0kk6-agda-stdlib-0.15...
/nix/store/2c1d841x2f3a68cszmhpp3ngyh7v0kk6-agda-stdlib-0.15

This should just be the right thing to do. I haven't tested it, but I don't see what could go wrong.


Recognize the type for the properties

When extracting a component and a interpolation is part of it, then the @Input type is currently any. It would be better if the actual type would be determined and used.
Maybe the information can be retrieved by the Angular Language Service.

The following could work:
Based on the code from the angular language service, they also created a client which is then used from vscode side. This client provides a function that type checks the current cursor position. The response should be in the LSP format for the hover response.
from:

client/src/extension.ts
client/src/client.ts

const client = new AngularLanguageClient(context);
const textEditor = vscode.window.activeTextEditor;

// needs to be implemented
const positionsOfTypes = findPartsThatRequireTypeInformation(textEditor.selection);

const typePositionPair = Promise.all(positionsOfTypes.map(position => {
  // needs to be implemented
  changeCurserPosition(textEditor, position);
  return client.getTcbUnderCursor(textEditor)
    // needs to be implemented
    .then(convertToType)
    .then(type => [type, position]
}));

This should work even though its async, because the getTcbUnderCursor is executed in sync until the language server request starts and after that the textEditor cursor position is no longer needed.

It will not be quite so easy, as this requires the property AngularLanguageClient.client to be instantiated and this only happens after the start() method. But, that could start a second language service and thats not acceptable


Pagination is not being populated in collection even if the $this->response->page is set

It's mostly because you are using isset which in turn calls __isset() and always return false.

I think this is fixed with the last pull request 6c1d17c (?)


Nex range Xp

Bosses like mally / treebeard give XP but unfortunately Nex does not.
Assuming this is due to it originally being massable/ for groups at the start, but now nearly always people do solo nex and mass channel was wiped.
If it could give range XP that would be nice.

Have you checked your XP before and after the trip? Nightmare is similar, it doesn't show XP gained but looking at it with =m stats before and after shows an increase

Hi, yeah test a few times, nothing.

In the next update, you should now get xp for killing nex.


FlutterView's EAGLLayer should override [CALayer renderInContext:] to allow screenshots on iOS

This would allow apps to call window.layer.renderInContext to get a screenshot of the running Flutter app

@chinmaygarde

Working on this today.

Thank you!


Error with stepDefinitions

Hello,
First of all, I want to apologize because this is not really an issue or bug. I search help with migration.
I am trying to migrate Cypress to v10.11.0. In this app, I have installed v20.1.0 cucumber. The problem is when I try to run a test, the next error appears:

Mi folder system is:
cypress
└── e2e
    ├── Wiring
    │   ├── Wiring.feature
    │   └── Wiring.js

My cypress configuration file is:
const { defineConfig } = require("cypress");
const cucumber = require("cypress-cucumber-preprocessor").default;

module.exports = defineConfig({
  viewportHeight: 1080,
  viewportWidth: 1080,
  chromeWebSecurity: false,
  e2e: {
    setupNodeEvents(on, config) {
      on("file:preprocessor", cucumber());
    },
    baseUrl: 'https://sis.tsk.cloud',
    specPattern: 'cypress/e2e/**/*.feature',
  }
});

And my package.json is:
  "cypress-cucumber-preprocessor": {
    "nonGlobalStepDefinitions": true,
    "stepDefinitions": "cypress/e2e/Wiring/*.js"
  },
  "devDependencies": {
    "@babel/core": "^7.7.4",
    "@babel/preset-env": "^7.7.4",
    "@badeball/cypress-cucumber-preprocessor": "^20.1.0",
    "@types/systemjs": "^6.1.0",
    "babel-eslint": "^11.0.0-beta.2",
    "babel-loader": "^8.0.6",
    "clean-webpack-plugin": "^3.0.0",
    "copy-webpack-plugin": "^5.0.4",
    "cypress": "10.11.0",
    "cypress-cucumber-preprocessor": "^4.3.1",
    "cypress-downloadfile": "^1.2.3",
    "cypress-file-upload": "^5.0.8",
    "eslint": "^6.7.2",
    "eslint-config-important-stuff": "^1.1.0",
    "eslint-config-prettier": "^6.7.0",
    "eslint-plugin-prettier": "^3.1.1",
    "html-webpack-plugin": "^3.2.0",
    "husky": "^3.1.0",
    "prettier": "3.1.0",
    "pretty-quick": "^2.0.1",
    "serve": "^11.2.0",
    "ts-node": "^8.5.4",
    "tslint": "^5.17.0",
    "typescript": "^3.5.1",
    "uglify-js": "^3.17.4"
  }

I have reviewed others questions in StackOverflow but any answer helped me. What am I doing wrong? Can anyone help me?Thank you in advance.
Versions

Cypress version: 10.11.0
Preprocessor version: 20.1.0
Node version: 18.13.0

Checklist

[X] I've read the FAQ.
[X] I've read instructions for logging issues.
[X] I'm not using<EMAIL_ADDRESS>(package name has changed and it is no longer the most recent version, see #689).

You've added @badeball/cypress-cucumber-preprocessor to your package.json, but you're still importing cypress-cucumber-preprocessor. Although named similarly, they're different packages and they might as well be named abc and xyz. Remove abc from your project altogether.
Take a look at any of the many examples, which all work. If something doesn't work, it's always because you're doing something different.

Yes, you're right. I have already solved. Thank you very much and sorry for my error. I was desperate.


How to check all the tasks are completed

I'm using taskiq_redis to distribute the tasks to multiple gpus.
I wanna know if all the tasks are completed or not.
Please let me know how I can this info.
Thanks.

The easiest way would be to start using pipelines.
https://github.com/taskiq-python/taskiq-pipelines
import asyncio
from taskiq_redis import ListQueueBroker, RedisAsyncResultBackend
from taskiq_pipelines import Pipeline, PipelineMiddleware

broker = (
    ListQueueBroker("redis://localhost:6379/0")
    # Here we add the PipelineMiddleware to the broker,
    # so we can use the pipelines in the broker
    .with_middlewares(PipelineMiddleware())
    # Here's the result backend for the broker,
    # It's required for pipelines to work, because
    # intermediate results should be stored somewhere
    .with_result_backend(
        RedisAsyncResultBackend(
            "redis://localhost:6379/1",
            keep_results=False,
        )
    )
)

@broker.task
async def my_task(a: int) -> int:
    await asyncio.sleep(1)
    return a * 2

@broker.task
async def generate_tasks(num: int) -> list[int]:
    return list(range(num))

# Here's the pipeline to run your set of tasks
# It will generate some required values for tasks and then
# map each element in parallel.
#
# Also, we define the check_interval for my_task to be 1 second
# to minimize amount of requests to the result backend.
# You can granularly define check_interval for each task
# in the pipeline.
pipe = Pipeline(broker, generate_tasks).map(my_task, check_interval=1)

async def main():
    await broker.startup()
    # Pipeline itself is a task and therefore the interface is the same.
    # You can wait for the result as if it was a regular task.
    task = await pipe.kiq(10)
    res = await task.wait_result(check_interval=1)
    print(res.return_value)
    await broker.shutdown()

if __name__ == "__main__":
    asyncio.run(main())

Or, you can use utility function to gather all tasks as in asyncio.gather, by running:
import asyncio
from taskiq_redis import ListQueueBroker, RedisAsyncResultBackend
from taskiq import gather as taskiq_gather

broker = ListQueueBroker("redis://localhost:6379/0").with_result_backend(
    RedisAsyncResultBackend(
        "redis://localhost:6379/1",
        keep_results=False,
    )
)

@broker.task
async def my_task(a: int) -> int:
    await asyncio.sleep(1)
    return a * 2

async def main():
    await broker.startup()
    tasks = []
    for i in range(10):
        tasks.append(await my_task.kiq(i))
    results = await taskiq_gather(*tasks, periodicity=1)
    for result in results:
        print(result.return_value)
    await broker.shutdown()

if __name__ == "__main__":
    asyncio.run(main())

To minimize amount of requests to the result_backend don't forget to specify delays between checks. Hope it helped you.


[Feature] Allow custom keybinds during pattern input

Currently, it seems that several of the keybinds used during pattern input are hardcoded. It would be nice to be able to customize those according to the user's preferences.

I thought about it recently when I started implementing a page scroll while searching feature.
I didn't really knew what would be the best keymap and thought "at one point, it could be nice to let the user define them !".
Definitely a must have ! Thanks

This is now provided by 538fb1982e23b80114f346d0ee0a91900ca71981.

Btw, 0.5 has been merged to main.


Update spring-data-getting-started.md

closing in favour of https://github.com/arangodb/docs/pull/485


Remove tables with no data from data discovery process

Tables with no data are still processed during data discovery process. No discovery is done, but the it still takes time to process them in the loop and make JDBC call.

Implemented.

This task is completed.


Website doesn't load properly

Hi!
I tried using DocumenterVitepress but somehow my documentation in the dev link isn't working properly.
https://juliaclimate.github.io/GeoRegions.jl/dev/
Does anyone know why this might be the dase?

Thanks! The solution proposed worked.


Quick copy Bibtex on windows 10 leads to save as window

I've tried to use the Quick Copy Better BibTex option, to copy the bibtex item to the clip board but it pops out an save as menu.
I can save "Exported Items.txt" (suggested name) and copy from notepad but takes a lot of time.
I'm using windows 10 and Zotero <IP_ADDRESS>

You can already sort of do this using quick copy if you have the quick-copy translator set to Better Bib(La)TeX.

Thanks for your reply! but this pops out a "save-as" window to save a txt file for me. Maybe it is because of Windows 10?

Does this only happen with BBT translators (this would be surprising) or with all translators? If it happens with all, you'd have to talk to the zotero people - the quick copy stuff calls a translator of your choosing and puts the results on the clipboard Translators (such as BBT) cannot do anything except spit out text strings, so translators (generally) cannot trigger things like save-as.

Hold on, how do you use the quick copy translator?

Still interested?

I tried to find other quick copy options in the export but only the Better Bibtex has the quick copy. All other export options will pop out a save-as menu.

I can't hide it from that menu, alas, but that's not where it's intended to be used, it's intended to be used with the Zotero quick copy feature. Quick copy and regular export use the same Zotero infrastructure, so anything that you can use for quick copy you will by necessity also find in th export dropdown.
In the setup outlined in the quick copy page, choose "Better BibTeX Quick Copy" as the export format, and in your case, set the Quick Copy format in the BBT "Citation keys" prefs to "Cite Keys". Then use the shortcut keys as explained on the Zotero quick copy page.

Still interested?

Thanks! I got it working like that. It took me a while to understand what you ment. I'm current writing my thesis under a hard deadline.

I appreciate that, but I try to keep the number of open issue as low as possible as I'm working through the 5.0 port so I know what things still need to be done. I know how hard deadlines can be, and thesis work, but I really need bug-reporters to be available for resolution to get closure.


Please add a license

Hi. A year ago or so I forked your model-free-episodic-control repository. I refactored, deleted and added a lot of code. I published it on my github-account under the MIT-license and mention you as the original author. At that time I never thought about the fact that you do not include a license. Now I ask you to add a license to your project (preferably MIT or GPL v3) not just for me but also for all other people who may would like to use your code but are afraid because your have no license. Thank you!

Thanks Astier!

Thanks for mentioning me in your readme. Will also mention you in my readme


Migrate Example Scenes to UPM compatible Samples~ method

The main aim of this PR is to remove example assets from always being installed by default, which is bloat when unneeded, but still accessible via the UPM conventions of adding Samples via the Package Manager. However, there are other miscellaneous fixes included:-
PR -

Migrated Runtime/Example Scenes to ../Samples~
Added "samples" section to package.json

Misc -

Added "url" section under "author" on package.json to display correct address on VPM site
Re-arranged package.json parameter ordering
Removed .vscode/ directory and added to .gitignore

Discussion around this change would also likely require additional UI options under the VRSL menu item to install the AudioLink and DMX Example Scene samples before this could be considered further.

Further investigation shows that this can be performed with Unity API calls via https://docs.unity3d.com/2019.4/Documentation/ScriptReference/PackageManager.UI.Sample.html and this does not change behaviour between 2019.4 and the latest 2022 LTS.

Manually merging misc changes


Stack Overflow on Federated Schema Gateway Service in 13.5.0

Is there an existing issue for this?

[X] I have searched the existing issues

Product
Hot Chocolate
Describe the bug
We have a UI that issues a high number of requests to our gateway service, a number of which do queries in parallel to different domain services.  After some time (sorry I don't have better numbers), we get a stack overflow error:
Stack overflow.
Repeat 104670 times:
--------------------------------
at System.HashCode.Combine[[System.__Canon, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e],[System.Int32, System.Private.CoreLib, Version=<IP_ADDRESS>, Culture=neutral, PublicKeyToken=7cec85d7bea7798e]](System.__Canon, Int32)
at HotChocolate.Path+RootPathSegment.GetHashCode()

Steps to reproduce
I wish I could share our repos but they are private.  In general, it is:

Setup a federated schema service with domain services
Issue a high number of client-side concurrent requests to the gateway service of which certain queries include types from both domain services in the same query
It'll eventually fail as noted above.

Relevant log output
Noted in the bug description.

Additional Context?
This happens when upgrading to 13.5.0 but does not happen with 13.4.0.
Version
13.5.0

Thanks for reporting ... I will have a look at this and think I know why this is happening.

Its fixed with 13.6.0-preview.4


material-ui-pagination@next still need the old one material-ui dependencies.

hi @jgreubel after I installed, why the material-ui-pagination@next still need the old one material-ui dependencies.
I see this warning<EMAIL_ADDRESS>requires a peer of material-ui@>= 0.19.0 < 1.0.0 but none is installed. You must install peer dependencies yourself.
and the error /Users/retina/Documents/boss3/bossadmin/src/material-ui/svg-icons/navigation/last-page.js doesn't exist as directory
Thanks before.

I am not the maintainer of this repository.  However, I would google your error, such as<EMAIL_ADDRESS>requires a peer of material-ui@>= 0.19.0 < 1.0.0 but none is installed. You must install peer dependencies yourself. and see what you get.


Config option to disable alphabetical order.

It would be amazing if you could add an option to remove the alphabetical order of this plugin. I know a lot of people in the spigot comments suggested it and I thought it would be appropriate to open a thread here.

The plugin currently doesn't order at all as of now and simply uses the order provided by Essentials. Which order would you prefer?


Allow full screen control on web page....

Allow full screen control on web page.
Smooth minimum speed control.

Try setting the PWM frequency to 50Hz, and compare the torque at low speeds, I found a huge difference, I believe its an artifact of the H-Bridge caused by the rise and fall time of the power transistors !.

Assuming you can see the image, I think T2 and T4 would be constant.
What do you think ?.

There is a conflict with your changes according to Git. I tried to work it out but without success. I'm afraid i'll break it. I'll leave for now until Tuesday night.
I'll try and have a play with the PWM frequency in the meantime.

It looks like I need to delete my fork, start a new fork with the current master, then upload my changes. I've read the guide on using fork's but it stops at pull request, so maybe there a one shot thing per change, hence the conflict after you uploaded your changes to the master.


Extended core support by implementing FUNCTION DUMP, LIST, RESTORE, FLUSH commands

Closes #954
Closes #955
Closes #958
Closes #960
@shacharPash

Coverage: 87.533% (+0.06%) from 87.476% when pulling 97a251ac0b7b79e1469ee76d1ae59dbd41977148 on vladvildanov:vv-function-dump-restore-support into b8981720096acc52e75690a8258ec9975236120e on predis:v2.x.

Is this ready to be merged?

@tillkruss No, let's wait for new release

Closes as already implemented


Investigate usage limits

Find out how many requests per second can be handled by the current system. This applies both to the server infrastructure, but also to the underlying LLM system

OpenAI LLM chat rate limits
Current defaults as of July 2023:
3,500 RPM (requests per minute) and 90,000 TPM (tokens per minute)

We can apply to increase our rate limits. Should we?
It's also important to note that, should we decide to use it, GPT-4's current rate-limit is 200. OpenAI will increase that number over time.

Current rate limits are of 200 messages or 40,000 tokens per minute, which will likely be reached in 5-6 questions if we use the full context window for every chat. That might be a problem.
We need to set up a system that handles GPT-4 rate limits by switching to ChatGPT if they occur. Additionally, we could limit spamming by slowing down the streaming if a single user sends queries at an impossible speed.

@mruwnik @ccstan99 @henri123lemoine
i'm the maintainer of LiteLLM we allow you to maximize your throughput/increase rate limits -  load balance between multiple deployments (Azure, OpenAI)
I believe litellm can be helpful here - and i'd love your feedback if we're missing something
Here's how to use it
Docs: https://docs.litellm.ai/docs/routing
from litellm import Router

model_list = [{ # list of model deployments
    "model_name": "gpt-3.5-turbo", # model alias
    "litellm_params": { # params for litellm completion/embedding call
        "model": "azure/chatgpt-v-2", # actual model name
        "api_key": os.getenv("AZURE_API_KEY"),
        "api_version": os.getenv("AZURE_API_VERSION"),
        "api_base": os.getenv("AZURE_API_BASE")
    }
}, {
    "model_name": "gpt-3.5-turbo",
    "litellm_params": { # params for litellm completion/embedding call
        "model": "azure/chatgpt-functioncalling",
        "api_key": os.getenv("AZURE_API_KEY"),
        "api_version": os.getenv("AZURE_API_VERSION"),
        "api_base": os.getenv("AZURE_API_BASE")
    }
}, {
    "model_name": "gpt-3.5-turbo",
    "litellm_params": { # params for litellm completion/embedding call
        "model": "vllm/TheBloke/Marcoroni-70B-v1-AWQ",
        "api_key": os.getenv("OPENAI_API_KEY"),
    }
}]

router = Router(model_list=model_list)

# openai.ChatCompletion.create replacement
response = router.completion(model="gpt-3.5-turbo",
                messages=[{"role": "user", "content": "Hey, how's it going?"}])

print(response)


UX improvement. Increased language consistency

Fixed #148
Test:

P.S. Since the keys in locale are changed, I made changes in .po files to maintain consistency.

That's true. Thanks.


TK1 Freeze upon realsense ROSnode startup

System Configuration
Please complete Your Configuration detail below. Refer to the BKC at Configuration.

Version
Your Configuration

Operating System
Ubuntu 14.04.5 LTS

Kernel
3.10.40-grinch-21.2.1

Backend
video4linux

ROS
indigo

ROS RealSense
1.4.0

librealsense
0.9.1

Camera Type-Firmware
<IP_ADDRESS>

Expected Behavior
When we plug the Realsense R200 in to our TK1, running the "r200_nodelet_default" node, we expect it to run properly.
Actual Behavior
When we plug the Realsense R200 in to our TK1, running the "r200_nodelet_default" node, it freezes, does not show any further messages, and does not show any errors after this message:
[ INFO] [1474748112.582733021]: /camera - Starting camera
We have to always press the Reset button on the TK1 after this happens.
Any idea why the Realsense freezes the node/TK1?
Here's what we've tried:
To make sure Realsense gets enough power, we plugged it in to a USB hub, which has its own power adapter.
To make sure it's not a USB speed issue, we disconnected all other things to the USB hub, which is USB 3.0
We have the Grinch kernel installed.
To make sure it's not an HDMI issue, we removed the cable and are SSHing into the TK1.
Power draw is ~10-15% before running ROS, and ~20% running ROS and the node, regardless of whether the camera is plugged in.
Update: Running "r200_nodelet_rgbd.launch" with the Realsense plugged in makes all cores go to 100% and freezing.
Steps to Reproduce
Plug in TK1. Plug in realsense camera into powered USB hub, connected to TK1.
SSH into TK1, run ROS: 'roscore'
launch the ROS node for the R200 camera: 'roslaunch realsense_camera r200_nodelet_default.launch'

You may need a more recent kernel to get the r200 to work.  A good test is to run librealsense/bin/cpp-enumerate.  This will tell you if you have uvcvideo, udev, and all the right drivers setup correctly.

We do not have one of these boards to validate, but a few possible issue I see from the configuration information submitted.

You need to be using librealsense v0.9.2 - 0.9.1 is not compatible with realsense_camera 1.4.0.
The 3.10.40 does not have support for the R200 data formats. The librealsense installation directions provide patching information for 3.19.x and the 4.4.x. You'll need to patch your kernel first.

Once you have the kernel patched and the newer librealsense, you should build the librealsense code examples and use the cpp-enumerate-devices example to ensure that the camera is visible and accessible. You could also use the librealsense example code cpp-headless to ensure you can capture a single frame from each stream. We will be adding a tool to the ROS realsense_camera package with similar functionality to help with debug in the near future.
Once you know you can capture a frame from each stream, then I would try the ROS node again.

Under 14.04.5 you should be using the latest Xenial kernel 4.4.x.
Please try to use the prebuilt ROS Debian packages as the latest releases handle all of the udev rules and kernel patching; the only prerequisite is enable downloading of kernel sources.
Closing due to no response.


Added documentation markdown file.

Coverage remained the same at 96.226% when pulling 6976e32da06cae5c788254ad4dd32ddeda4bc44a on krmotwani:project_work into 59e8dd01a1ac6466a961910574c5fa5a43380a9e on cs207-group11:master.


Migrate to Reka UI, the new Radix Vue

https://reka-ui.com/docs/guides/migration

Is Reka UI Radix-Vue rebranded?

Yes, you can read the announcement in this thread: https://x.com/zernonia/status/1842209527871258900

Since Reka Ui has Tag-input are we going to get it in Nuxt UI?

It's already used in the InputMenu with multiple prop: https://ui3.nuxt.dev/components/input-menu#multiple

Oh Wow. That great news.  But I couldn't find a way to create. E.g. to input multiple emails or phone numbers to send invites to.


A number of small documentation fixups.

What this PR does / why we need it:
Cleans up some documentation formatting, spells out how to generate documentation for local viewing, and documents what tools are needed for development.
Special notes for your reviewer:
I'm not sure I'm holding this right, so if these should go somewhere else or be sliced differently, let me know.
Release note:
NONE

/ok-to-test

Thanks for the hints!
BTW, I can't get build to work on Windows yet, but I haven't tried hard.


model-viewer disappears with dir=rtl and a certain combination of CSS size definitions

Here is a minimal code. Please note this is a simplified version of an actual use case.
model-viewer version 4.0.0. Tested on Firefox 132 and Chromium 132.
I have an HTML with dir=rtl
I have CSS as such for responsive model size:
model-viewer {
    aspect-ratio: 1;
    height: auto;
}

And I have two model-viewers.
All of this works fine. But if i add width: 100% to the second model-viewer the first one disappears. changing to dir=ltr or adding direction: ltr in CSS fixes this. This was super hard to pin down...

Thanks, that is quite odd. Ideally MV just behaves the way a regular <div> would. Can you repro this behavior with just a standard <div> or <img> tag? If you figure out what CSS we have that's messing this up, a PR would be most welcome.

Thanks @elalish. This doesn't happen with div/img. you can see the loading and prompt are in the correct position but the model is shifted left out of the view. e.g with width: 70%:

Also, if you play width the width on both model-viewers you can get strange artifacts where one of the models gets a duplicated view in different sizes:

It reminded me of this old issue: https://github.com/google/model-viewer/issues/1379
I think the issue is related to RTL support (also found: https://github.com/google/model-viewer/issues/2021). As mentioned, a quick fix is adding dir=ltr or direction: ltr to the model-viewer, but adding that blindly might break backward compatibility and it would be better to understand the source of the issue (which is currently out of scope for me unfortunately). Maybe for the time being add a known issue comment to the docs?

Thanks for the detail, that's helpful. I'll take a look.


:bug: reloader rolebinding api version update

Please include a summary of the change and which issue is fixed. Please also include relevant motivation and context. List any dependencies that are required for this change.
Type of change
Please choose appropriate options.

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] This change requires a documentation update

How Has This Been Tested?
Please describe the tests that you ran to verify your changes in the below checkboxes. Provide instructions so we can reproduce. Please also list any relevant details for your test configuration

[ ] Ran Test A
[ ] Ran Test B

Test Configuration:

Software versions:
Hardware versions:

Checklist:

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

This got success

Hi @Arunkumarpodili can you please paste the jenkins job link or screenshot to verify the fix

Hi @Arunkumarpodili can you please paste the jenkins job link or screenshot to verify the fix

sure find the below link.
https://jenkins.sunbird-optitcloud.in/job/Deploy/job/dev/job/DataPipeline/job/BootstrapMinimal/


Switching to vitest

Working on compatibility support of vitest in #1301 I was surprised by how good it works outta the box.
Meanwhile, I'm not satisfied by the ESM support in jest, which is probably not going to be better in Jest 30.
So I'm exploring the possibility to switch to vitest instead.
Compatibility with jest will remain.
Also

I don't like jest globals
I don't like that jest changes the behaviour of node:assert (asserting with message:CustomError) against its documentation.

I like it.
This can also enable me to use latest versions if chalk and has-ansi that are ESM only.

Performance test

Test
Jest (master)
Vitest (feat)
Diff

Locally
6.8-8.2
11.5 - 12.2s
+4.5s

Not good, maybe it's due to reporter

9.95s locally was the best result of Vitest.
Tried all available performance improvement features.

Related issue: https://github.com/vitest-dev/vitest/issues/579

Performance test

Test
Jest (master)
Vitest (feat)
Diff

Locally
~7.5s
~7.6s
🆗

Good now.

coverage: 100.0%. remained the same
when pulling 778bb469589a8becf44c7e4115a0d95cec4f118e on switch-to-vitest
into 26c3ca3cc530cd7687121ee0823d8e51c73e0f78 on master.


WIP: add ignore auth

will fix #1

@joaoantunes, this PR updates to netcore3, and lays some basic groundwork for #1.
The idea I'm going with for now is that all configure methods passed in to the middleware extensions will be of type Action<CustomResponseCachingOptions>, and the middleware in the constructor will accept an ISnapShot<ResponseCachingOptions>, which it will convert to CustomResponseCachingOptions to know which provider to use, and then pass in to the base ResponseCacheMiddleware.
I'm not %100 positive that  ISnapShot<ResponseCachingOptions> will be resolved from an instance of a child class, but it probably is. If not, we'll have to take ISnapShot<CustomResponseCachingOptions> and convert it to ISnapShot<ResponseCachingOptions> to pass it to the base middleware..

@joaoantunes, LMK if you want me to add you as a colaborator.

I've seen that your implementation is a little different, this way will work too, but any specific reason why you are not using DI but manually creating the instances instead?
This limit that those new classes won't be able to inject dependencies (ex.: logging), and the implementation for IResponseCachingPolicyProvider if is used elsewhere in the code, it will use the default ResponseCachingPolicyProvider.
You can add me, hope I can help :)

In aspnetcore a bunch of those classes which used to be public are now internal. Technically they can be DI'd, but being that it's not possible for another code base to override it anyway and that it's being used in a middeware and is therefor a singleton, there's no benefit to doing it that I'm aware of.
I tried to follow the pattern of the internal ResponseCachingMiddleware, which has a public constructor which accepts public DI parameters, and an internal constructor.
It's possible I made a mistake - I rushed it and haven't tested it. But that's the basic idea.

This limit that those new classes won't be able to inject dependencies (ex.: logging),

I think all the middleware constructors take a logger in the constructor

The implementation for IResponseCachingPolicyProvider if is used elsewhere in the code

It is only used within any ResponseCacheMIddlwares, which is why the core .Net doesn't bother DI'ing it either.

I would like for ICustomResponseCache to be public, but it's tricky because IResponseCache and IResponseCacheEntry.
If you have any ideas, by all means feel free.

I'll work in a commit to demonstrating using DI and then you can decide if you want to use it.
But one issue of your approach is that for example now LocalCaching will not benefit from the implementation of the custom CacheAuthorizedRequestsResponseCachingPolicyProvider only the Distributed.

now LocalCaching will not benefit

Note that the public constructor of the builtin ResponseCache (the one which the DI uses) does not receive an IResponseCachingPolicyProvider. It creates it itself and passes it in to the internal constructor, because as far as aspnetcore is concerned, there can only ever be one implementation because it's an internal interface.
If you do want to use CacheAuthorizedRequestsResponseCachingPolicyProvider with the builtin ResponseCache, there would have to be another middleware, which would internally use the builtin ResponseCache.

@joaoantunes , is your aspnetcore git submodule on version 3? I upgraded in my PR, which introduces the internal limitations (the price of progress). You would want to use/look at commit f34272f1c0c903112c17bcb5a8a6b1a054e527f5

In my fork I have the old version, but I made a branch from this #2 👍
What I did:

fixed some compile issues (missing usings)
consolidate de versions
fixed the code regarding Authorize Caching (it was not working, because GetPolicy was not being able to provide the correct one, "cast" was failing)
changed to choose the policy on the register (now uses DI) instead of a manual instance
added a simple sample

It seems you haven't accepted my invitation to be a mantainer

As a fall back option, you could make a PR from your fork repo

The nuclear option would be to (after accepting the invitation)

clone with the git url (git@github.com:yringler/distributed-middleware-cache.git) which assuming you have an ssh/gpg key set up with your github account should work, then you can
get any branches from your fork and
push them here.

I'm sure there's a way to gracefully transition to using this repo, but it's outside of my git expertise to give advice in that regard.

Ok I've accepted and was able to make PR.
You can check it here: #3
If you have any doubts please tell me.
Do you have any idea why we can't use the Microsoft default extensions, it says it is ambiguous because we are using the hyperlink to those classes? Any idea how to fix this?


Installation broken

Tried installing this plugin with no luck.
I tried to install via the CLI:
kirby plugin:install distantnative/panel-bar

Then I added this snippet to my footer.php.
<?php snippet('plugin.panelBar') ?>

But nothing shows up in frontend or the panel. Then I read the manual installation instructions that says that the plugin needs to be in the folder site/plugins/panel-bar. But when I installed using the CLI the folder name is site/plugins/panelBar. When I rename the folder to site/plugins/panel-bar the plugin seems to be activated, but the frontend just generates a lot of errors, and in the panel, the Panelbar widget shows this error:
array_diff(): Argument #2 is not an array

Did I miss something obvious that is needed to correctly install this plugin?

Just published 2.1.2 with two fixes that should solve both problems that you have encountered. Thank you for pointing them out! (and no, you did everything right, those were my bugs)


Tag feature

Soo its seems snekchek will try to run all linters if there is no config file existent, that is what causes CI to fail I guess, let me try to fix (Mart will not publish to pypi today anymore I guess)
Also why do you still have snekchek in CI if you deleted .snekrc?

Why did you remove .snekrc if we're using snekchek for flake8 and soon pytest? If you want Travis to pass, simply set .travis.yml to use flake8 instead, but I'm confused as to why.


Got Install issue

When i run "php artisan vendor:publish" comment
its give me error in my console.

Can't locate path: </Users/username/Projects/test-app/vendor/smatar/laravel-settings/src/app/Providers/../../database/seeds>

Hi,
thank you for notifying me on this.
the fix pushed to master. please use
"smatar/laravel-settings": "dev-master"
in your composer, if you use v1.0
till the new release of fixes released
thanks


Black screen when connecting, Wrapper fully supported ver. 10.0.18362.267

Windows updated to version 1903 yesterday, so I used the autoupdater from #860 and the Wrapper got fully supported again, however when I use RDPCheck it just gives me a black screen and it shuts down after a while.

So I tested it in a laptop we use regularly and it connects just fine, even shows up in the task manager, but on the laptop it still just a black screen, though there it only shuts down when I disconnect the user.

I tried reinstalling it from scratch and still no dice.

it's windows new feature problem not rdpwrap issue https://github.com/stascorp/rdpwrap/issues/858#issuecomment-523192537

Thanks! @s0nic9 it's working now, didn't even need to reboot.
Funny thing is I checked issue #858 but since I wasn't reconnecting I dind't check your solution, but now that I'm thinking about it, I logged in locally into every user in the morning so they wouldn't have to go through lenghty that update introduction Windows does, and then disconnected, so F me for being nice I guess. Thanks a lot for the quick response.

#2161 I have tried  this method is ok but we need install gpedit.msc at first