:converge action should not re-install chef-client if the desired version is already installed

When run_list or tags are modified in machine resource with converge_only action, run_list and tags are not updated in nodes/.json.
With converge action, run_list and tags in nodes/.json are updated, but converge action consumes time to install chef-client, it is not convenient.
It would be nice if run_list or tags in nodes/.json file are updated on converge_only action to reflect machine resource.

Hey @ynojima the install.sh script should not be attempting to download and re-install the same version of Chef if it is already installed.  Are you seeing that behavior?
If you are seeing that, and we fixed that issue, would you be okay with the speed of the :converge?
I don't want to change the :converge_only action to have it do more than it is doing then.  Then it wouldn't be only converging :)

Thank you for comment.

I don't want to change the :converge_only action to have it do more than it is doing then. Then it wouldn't be only converging :)
I understand your design decision, and I'm ok if :converge action re-installs only when proper chef-client is not installed.

Are you seeing that behavior?
No, I don't. When I used :converge action, it seems it always try to re-install chef-client.
I'm using chef-provisioning-ssh as a driver. Maybe it is the cause.

I'm going to update this bug to be about investigating how we can not re-install the same version of chef multiple times - perhaps we can leverage Mixlib::Install for this?

I think our functions of interest are Check-UpdateChef in support/install_command.ps1 and should_update_chef in support/install_command.sh from https://github.com/chef/mixlib-install/blob/master/support/
Some tests around these should make it where we don't re-install.

Thank you for pointing out.
I looked into the install_command.sh script, and I found 'latest' was specified in $version since I haven't specified chef_version option in convergence_options, and 'latest' made chef-client re-installed everytime.
Once I specified chef_version, :converge action stop re-install chef-client.
For my case, specifying desired chef version in convergence_options is solution,
but some may want latest not to re-install chef-client if 'latest' chef-client is already installed.

Nice catch @ynojima  I'll be adding chef_version myself now.

I can verify that it did not re-install it on windows, However think there is an error in the powershell code:
    [awsusw2-ii-mip-demo] Method invocation failed because [Selected.System.String] doesn't contain a
                                          method named 'StartsWith'.
                                          At C:\chef\install.ps1:19 char:7
    [awsusw2-ii-mip-demo] -----> Chef Omnibus installation detected (12.4.1)

    [awsusw2-ii-mip-demo] +   if ($chef_version.StartsWith($version)) { return $false }
                                          +       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                              + CategoryInfo          : InvalidOperation: (StartsWith:String) [], Runtim
                                             eException
                                              + FullyQualifiedErrorId : MethodNotFound

I’m seeing the same behaviour on Windows, where the chef client is downloaded and re-installed each time, when chef_version is not specified.
And similarly, when chef_version is specified, I see the same powershell error as @hh.
Interestingly (for me at least), I do not see either of these two behaviours when I use chef provision --no-policy to do the provisioning  (as opposed to using  chef-client -z my_provisioning_recipe).

cc @jaym since i stole the powershell from him

Okay, here is my story for this:
I'm pinning to Mixlib::Install 0.7.0 until 1.0 is released.  0.7.0 has an install script that won't re-install chef every time if you specify a desired version.  If you don't or you specify "latest" then it will re-install every time even if the latest version is already installed.  I talked to @sersut and that behavior will change in Mixlib::Install 1.0.  We will pull in that change when it is released.
In the mean time, specify a version like below to keep chef from re-installing every time:
machine "tyler_test_machine" do
  machine_options bootstrap_options: {
    key_name: 'tyler_provisioning_test',
    # ...
  }, convergence_options: {
    chef_version: "12.5.1",
    # ...
  }
end


Set default ci in master branch

So that newer long-lived branches can default to configurations in there.
Remove default drone CI as well.

I wonder if we just delete the master branch? Given that we develop on release branches, does it even make sense to use it at all? Or should we just plan to use w/e the highest release branch is to create the base for the next release branch? (I.e. release/v5.0 will become the base for release/v6.0 once we start on Rancher 2.10.x?)
Or are you thinking we use the master branch as an intermediate between releases? If so, how will we keep it in sync with the latest release branch?

I assumed once we start working on rancher 2.10 (or 3.0, or whatever comes after 2.9) we'll branch release/v6.0 off of release/v5.0 and continue development there. And we can leave master for anything that wants a default branch that isn't tied to a release.


Add fake benchmarks for OuputIsFee

This allows GenRustJets to run.

Can you update the committed autogenerated C source files?

Fixed.

ACK


Fix error when missing .env file

https://github.com/Zuehlke/ConfZ/pull/62 broke backwards compatibility for having *.env files be optional, as well as compatibility with dotenv's find_dotenv capability for searching the folder hierarchy for .env files.
This change tweaks the stream feature to restore the previous behavior for file-based env file loaders and adds a test with a nonexistent file.

Thanks a lot for the fix!
There is a small formatting error, otherwise everything looks fine to me.

No problem! Love the package - I had built one along very similar lines and was slowly improving it until I found ConfZ, which does everything I had wanted with an even nicer interface.
Tests should all pass now.

It's great how often people contribute to it, love the open source spirit!

I will release a new version by the end of the week, currently I'm on vacation.


Fix Issues That Cause 'make dist' to Fail with ESP32-related Device Layer Adaptation

@jaylogue, I may need to work with you on this given that the ESP32 build is failing: https://travis-ci.org/openweave/openweave-core/jobs/430709916. I am uncertain how the master build can be succeeding with the makefile failures that exist in master against 'make dist'.


[6.86] new rune coordinates

Older rune coordinates merge request. Please close, probably without merging.


Checked quirked box, fixed bad fencing

//cc @conniey, because retargeting wasn't selected, this appears in the list of runtime changes. Can you remigrate to dotnet/docs?

I'm curious on the process we have. What does re-migrate to dotnet/docs mean?

@richlander,  @conniey has a migration procedure that transforms each compat topic into an include file. It also generates the fromVersion-toVersion files for retargeting and runtime changes. @conniey, do you want to provide more detail for @richlander?

@richlander The PortabilityService ingests the breaking changes from a this repository, and I have a tool that queries the breaking changes from the service, and translates it into a format that can be displayed on docs.microsoft.com. Then I'll create a PR in that repository to merge the changes in. (ie. https://github.com/dotnet/docs/pull/3110)


Vendor in latest buildah code

Update to buildah 1.9.2 to fix performance issue on
COPY . /tmp
without .dockerignore file.
Signed-off-by: Daniel J Walsh<EMAIL_ADDRESS>

@vrothberg PTAL
I am not sure if I am doing the vendoring in correctly.

/test images

/test images

/test images

@rhatdan, some changes need to be added after a make vendor:
[libpod (pull-request-3573)]$ gits
On branch pull-request-3573
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   go.mod
        modified:   go.sum
        modified:   vendor/github.com/vishvananda/netns/README.md
        modified:   vendor/github.com/vishvananda/netns/netns_linux.go
        modified:   vendor/modules.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        vendor/github.com/containers/buildah/.cirrus.yml
        vendor/github.com/containers/buildah/.golangci.yml
        vendor/github.com/containers/buildah/go.mod
        vendor/github.com/containers/buildah/go.sum
        vendor/github.com/containers/buildah/imagebuildah/executor.go
        vendor/github.com/containers/buildah/imagebuildah/stage_executor.go
        vendor/github.com/ishidawataru/sctp/GO_LICENSE
        vendor/github.com/ishidawataru/sctp/ipsock_linux.go

Looks like something went wrong and removed ginkgo etc.: +63 −1,108,301

Doing a force merge just to get this in, rather then doing the merge dance again.


import guard for missing modules

import towhee
from towhee.functional import DataCollection
dataset = DataCollection.from_zip('https://towhee.io/towhee/image-dataset/media/branch/main/image_dataset.zip', '/dataset/.JPEG').unstream()
query = DataCollection.from_zip('https://towhee.io/towhee/image-dataset/media/branch/main/image_dataset.zip', '/query/.JPEG').unstream()
dc_data = dataset.image_load().towhee.resnet_image_embedding(model_name='resnet50').select('feature_vector')
Traceback (most recent call last):
File "", line 1, in
File "/Users/jingjing/miniconda3/envs/tw/lib/python3.9/site-packages/towhee/hparam/hyperparameter.py", line 205, in call
return self._callback(self._path, self._index, *args, **kwds)
File "/Users/jingjing/miniconda3/envs/tw/lib/python3.9/site-packages/towhee/functional/data_collection.py", line 652, in wrapper
return self.map(op)
File "/Users/jingjing/miniconda3/envs/tw/lib/python3.9/site-packages/towhee/functional/data_collection.py", line 26, in wrapper
return self.factory(func(self, *arg, **kws))
File "/Users/jingjing/miniconda3/envs/tw/lib/python3.9/site-packages/towhee/functional/data_collection.py", line 216, in wrapper
return creator(*arg, **kws)
File "/Users/jingjing/miniconda3/envs/tw/lib/python3.9/site-packages/towhee/functional/data_collection.py", line 171, in unstream
iterable = list(iterable)
File "/Users/jingjing/miniconda3/envs/tw/lib/python3.9/site-packages/towhee/functional/data_collection.py", line 389, in inner
return unary_op(x)
File "/Users/jingjing/miniconda3/envs/tw/lib/python3.9/site-packages/towhee/engine/factory.py", line 93, in call
res = self._op(*arg, **kws)
File "/Users/jingjing/miniconda3/envs/tw/lib/python3.9/site-packages/towhee/engine/operator_registry.py", line 199, in wrapper_call
return old_call(self, *args, **kws)
File "/Users/jingjing/miniconda3/envs/tw/lib/python3.9/site-packages/towhee/engine/operator_registry.py", line 183, in call
return old_cls(*arg, **kws)
File "/Users/jingjing/miniconda3/envs/tw/lib/python3.9/site-packages/towhee/hub/builtin/operators/computer_vision.py", line 44, in image_load
import cv2
ModuleNotFoundError: No module named 'cv2'

I believe that we moved away from cv2 being a requiremnet. We might need to add checks with messages to prompt cv2 install. I saw that a few of our mixins still use it @reiase
Originally posted by @filip-halt in https://github.com/towhee-io/towhee/issues/891#issuecomment-1081204276

/assign @filip-halt

#981


fix: support for nested parameters and FuncParam reference

This PR allows having (session) parameters in other parameters. Might allow recursion.
It also makes it possible to reference the function as the parameter name.

Codecov Report

Merging #56 (f84b0cd) into master (49bbf4e) will decrease coverage by 0.10%.
The diff coverage is 87.80%.

@@            Coverage Diff             @@
##           master      #56      +/-   ##
==========================================
- Coverage   90.41%   90.31%   -0.11%
==========================================
  Files          86       86
  Lines        3892     3912      +20
==========================================
+ Hits         3519     3533      +14
- Misses        373      379       +6

Impacted Files
Coverage Δ

rocketry/session.py
89.68% <60.00%> (-0.61%)
:arrow_down:

rocketry/args/builtin.py
87.67% <87.50%> (-4.52%)
:arrow_down:

rocketry/args/secret.py
77.77% <100.00%> (ø)

rocketry/core/parameters/parameters.py
94.62% <100.00%> (+0.30%)
:arrow_up:

rocketry/core/task.py
91.61% <100.00%> (ø)

rocketry/parameters/func.py
100.00% <100.00%> (ø)

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 49bbf4e...f84b0cd. Read the comment docs.


New package: BinnedStatistics v0.1.0

Registering package: BinnedStatistics
Repository: https://github.com/kirklong/BinnedStatistics.jl
Created by: @kirklong
Version: v0.1.0
Commit: a5710559ccdc58eeeb73a1059e84e5be69617d08
Reviewed by: @kirklong
Reference: https://github.com/kirklong/BinnedStatistics.jl/issues/1
Description: An analogue to SciPy's stats module "binned_statistic" that's faster and written in native Julia

Originally I had intended to submit this functionality as PR to StatsBase, but based on https://github.com/JuliaStats/StatsBase.jl/pull/760 it seemed better to try to find a home for it as a standalone utility or in a different package. I thought it would be a good learning experience to make my own package for the first time so opted to try going that route, which is why I've done this. This is a really common utility used by a lot of people in academia (I'm an astrophysics PhD student), and things like this that are missing from Julia are a big barrier to entry for some of my colleagues. Some of this functionality is already possible with existing packages, but this way is much faster (>10x speed-up compared to using the StatsBase histogram method, for example). If you think this isn't a big enough thing to be its own package and have a better place for it happy to adjust!
I've noticed at least one other Discourse user searching for this kind of functionality: https://discourse.julialang.org/t/julia-equivalent-of-scipy-binned-statistic-dd/64260
Thanks!


Add link to home page on sidebar header

Fixes #151

@AlmightyYakob, is anything holding this PR up from being merged? Let me know if there's anything I can do to help.

Whoops, didn't see that this was approved :man_facepalming:


Improve documentation page

Context
There are some points I found which can further improve the documentation page:
General:

Standardize css, currently it's a mix of scss & Tailwind
Revisit HTML tags & structure
Optimize images

Homepage:

Improve Section component on homepage, possible to add title, animation rules to it

About Us page:

Fix timeline in mobile

The contrast seems to be too low for --ifm-link-color, the link(refer to the screenshot above) : 1.71(light theme)/4.48(dark theme)
Self-host background image of HeaderSection

Version/doc page:
Haven't had time to have a look. Maybe in another issue as the scope of this issue is not small.
Suggested solution

Use Tailwind as the main way of styling
Use webp format for images as it is well supported among modern browsers, also resize images if needed
About us timeline: display the UI similar to the one in desktop
Pick another color for link to have higher contrast
Initialize theme based on user preference (ref)

Thanks for the suggestions. Agreed on all suggested solutions.
The link colour is using the brand colour for GameCI. The new colour should be as close as possible to it, ideally just a different shade.

Seems these are all resolved. Awesome work!


 I am currently trying to parse https://github.com/clouditor/clouditor as a Go benchmark.

Closed in favour of #1249


Added scipy.stats.gennorm.

Merging failed because the new tests are failing on TPU due to floating point precision. We should be able to fix it by bumping the rtol in CheckAgainstNumpy from 0.0001 to 0.001

Hi - just taking another look at this. Can you squash the two commits and rebase on the current main branch? Thanks!

Looks like there are some conflicts... can you rebase against the updated main branch?

@jakevdp Done.

Thanks!


Implement and benchmark against vdW_grid_bench

Van der Waals 3D grid initialization benchmark

Started doing it here https://github.com/lukstafi/vdW_grid_bench but it's not essential.


[Feature Request] Cron Schedule from specific hour

Hi,
Is it possible to config a cron schedule to start from a specific hour (e.g 0 12/4 * * *)?
at the moment it's not possible, an error pops up about a syntax error.
Thanks.

this is called stepping in the vixie cron docs
https://github.com/vixie/cron/blob/master/Documentation/Features.md

Just wanted to add that this also should allow formats like 4/10 * * * * to run every 10 minutes, begining at the 4th minute of the hour.

Hi,
Is it possible to config a cron schedule to start from a specific hour (e.g 0 12/4 * * *)?
at the moment it's not possible, an error pops up about a syntax error.
Thanks.

Plus one on this please

Hi, Is it possible to config a cron schedule to start from a specific hour (e.g 0 12/4 * * *)? at the moment it's not possible, an error pops up about a syntax error.
Thanks.

@ShlomiD83 circling back on this one since cron came up on another issue recently. Could you do 0 */4 * * * to achieve every 4 hours?

That's the way I have it set now, the request was if we can run the test from a specific time and then 4 hours.
For example start at 2AM and from there count 4 hours and test again.

Hi Alex,
The issue with starting at midnight and multiple hours after that is that the results are heavily affected by quite a few background tasks like backup processes, downloads etc.
These all start every 4 hours for me and can take up to 1.5 hours to finish. The ideal way to get around this would be to run speed test every 4 hours but offset it by 2 hours to run at 02:00, 06:00 etc.
Thanks,
Arthur

Thanks @ArthurMitchell42, didn't really consider that use case but makes complete sense.
I either don't have as much data as you or I'm spoiled with gigabit symmetric.

 The best I can hope for is about 73Mb/s down and 19 up even on a good day. 😀

@ShlomiD83 and @ArthurMitchell42 that other package ended up failing the validation criteria. While not ideal for the time being you could pass which hours you want the tests to run like so... 0 2,6,10,14,18,22 * * *

@alexjustesen Is there any ETA for supporting x/y field format?

@alexjustesen Is there any ETA for supporting x/y field format?

Not at the moment, I haven't been able to find a package that'll help with validation of the expressions with the formats above.

Just wanted to add that this also should allow formats like 4/10 * * * * to run every 10 minutes, begining at the 4th minute of the hour.

agree would be nice if this was supported, since everybody in the world is hitting the Speedtest servers at the same time. Would be nice to keep my 15 minute interval starting at 7 minutes after the hour.

I wonder if the issues reported in #1260, #1328, #1319 are all linked into the fact everyone is hitting the servers on the hour, every 30 mins etc?

Regarding issues of low rates I wonder if adding a "random" variance value on top of the cron schedule might help.
For example, if you set a test every 4 hours, adding a pseudo random value of 60 minutes means the test would trigger at some point during the defined hour but would be substantially less likely to cause a storm of activity at the servers. This would be particularly effective if the randomness went down to seconds rather than units of minutes.
What do we think?

or just comply as advertised with the cron syntax that goes back to the 1980's.
This halfassed implementation caused me to stop using this software.

TL;DR
Use the range syntax to achieve an offset schedule, example 4-59/5 * * * *.
Deep Dive
Turns out the cron "standard" syntax is anything but consistent. Certain implementations (i.e. Java) support non-standard characters like / and others are more strict when it comes to the syntax it considers "valid".
As far as the syntax 4/5 * * * * this means "run every 5 minutes, starting at 4 minutes past the hour". So this syntax includes an "offset" for the schedule and would look like :04, :09, :14, :19 etc.
If we used the range syntax 4-59/5 * * * * this means "run every 5 minutes, minutes 4 through 59 past the hour". This syntax still includes an offset for the schedule but it's not as clear and would still look like :04, :09, :14, :19 etc.

If you have trouble sleeping at night I suggest taking a look at https://en.wikipedia.org/wiki/Cron.
Since we finally have a good documented resolution that passes validation to implementing schedules "from" a time (aka an offset) I'm going to close this one out.

Could I suggest either a doc/FAQ update and or removing the link to https://crontab.cronhub.io on the settings page? As soon as you open https://crontab.cronhub.io it presents "*/5 * * * *" which gives the syntax error

Could I suggest either a doc/FAQ update and/or removing the link to https://crontab.cronhub.io on the settings page? As soon as you open https://crontab.cronhub.io it presents "*/5 * * * *" which gives the syntax error

Done, added to the FAQ and linked back to this issue and the comment above. I'm going to leave the link to cronhub.io because */5 * * * * "every 5 minutes" is valid, 4/5 * * * * isn't with the offset.

@alexjustesen Would https://crontab.guru be better to link to than https://crontab.cronhub.io/? The former gives a warning for 4/5 * * * * "Non standard! May not work with every cron."

Happy to review a PR, it's probably a better fit.

Looks like https://github.com/alexjustesen/speedtest-tracker/issues/552#issuecomment-2028532010 no longer functions with the new config?
If I try e.g. 1/6 for hours I get a 500 error.
Enabling debugging shows the issue is /6 considered as an invalid option.
I had to swap to comma-seperated values instead.

It's working OK for me with SPEEDTEST_SCHEDULE=7-59/30 * * * *

OK, so it appears you need to specify a range.
It was unclear to me from the example that that is required and the <offset>/<interval> syntax doesn't work.
SPEEDTEST_SCHEDULE=37 1/6 * * *

InvalidArgumentException
Invalid CRON field value 1/6 at position 1

SPEEDTEST_SCHEDULE=37 0-23/6 * * * Works fine

Seeing as my bug report was closed I will comment here
I have tried every SPEEDTEST_SCHEDULE in my docker compose  none of them work.
All I’m looking for is a regular speed test that runs hourly. Can anyone help? Do I need to delete and recreate my config folder, I’m not sure this should be this hard?
services:
    speedtest-tracker:
        container_name: speedtest-tracker:latest
        ports:
            - 8080:80
            - 8443:443
        environment:
            - PUID=1000
            - PGID=1000
            - APP_KEY=************
            - DB_CONNECTION=sqlite
            - SPEEDTEST_SCHEDULE=7-59/30 * * * *
        volumes:
            - /opt/docker/speedtest:/config
            - /opt/docker/speedtest//ssl-keys:/config/keys
        image: lscr.io/linuxserver/speedtest-tracker:latest
        restart: unless-stopped

@mightywomble SPEEDTEST_SCHEDULE=0 */1 * * * will run it every hour on the hour

ChangedDocker compose restart Made no differenceI will delete all the config start again and see if that makes a differenceSent from my iPadOn 9 Jul 2024, at 07:43, Marcin Pawelek @.***> wrote:
@mightywomble SPEEDTEST_SCHEDULE=0 */1 * * * will run it every hour on the hour
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

@mightywomble What exactly is the issue? Is the test not running at all with the schedule?

CorrectI am expecting the test it’s the above to run hourly, its not running at all on a schedule It runs ok manuallySent from my iPadOn 9 Jul 2024, at 09:28, Jim @.***> wrote:
@mightywomble What exactly is the issue? Is the test not running at all with the schedule?
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

Do you see the "Next speedtest at:" info on the admin dashboard?

Does the Results table show any tests other than the manual ones?

No I don't see Next Speed test at:
The results table ONLY shows manual runs
Get BlueMail https://bluemail.me for Desktop
Jim wrote:
Do you see the "Next speedtest at:" info on the admin dashboard?
Screenshot.2024-07-09.at.10.23.46.png (view on web) https://github.com/alexjustesen/speedtest-tracker/assets/10902647/9d4f54ec-0e41-455f-90bf-e52ce9ac295f
Does the Results table show any tests other than the manual ones?
—
Reply to this email directly, view it on GitHub https://github.com/alexjustesen/speedtest-tracker/issues/552#issuecomment-2217143082 , or unsubscribe https://github.com/notifications/unsubscribe-auth/AFA3ARDKUTQ6QA3BBIUCZBDZLOUAZAVCNFSM6AAAAAAXDS7UWOVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEMJXGE2DGMBYGI .
You are receiving this because you were mentioned.Message ID: @.***>

I have deleted the previous volumes and started afresh with this
Using this docker-compose.yaml
services:
    speedtest-tracker:
        container_name: speedtest-tracker:latest
        ports:
            - 8080:80
            - 8443:443
        environment:
            - PUID=1000
            - PGID=1000
            - APP_KEY=base64:0C4V84+cnlztGJDjmj8jTzSo2pmY7frk9NRpniS+1yU=
            - DB_CONNECTION=sqlite
            - SPEEDTEST_SCHEDULE=0 */1 * * *
        volumes:
            - /opt/docker/speedtest:/config
            - /opt/docker/speedtest//ssl-keys:/config/keys
        image: lscr.io/linuxserver/speedtest-tracker:latest
        restart: unless-stopped

I ran
docker compose pull
docker compose start

This resulted in the following dashboard

Host OS - Debian 12
Docker Version - Docker version 27.0.3, build 7d4bcd8
Output from docker compose logs
speedtest-tracker  | ───────────────────────────────────────
speedtest-tracker  |
speedtest-tracker  |       ██╗     ███████╗██╗ ██████╗
speedtest-tracker  |       ██║     ██╔════╝██║██╔═══██╗
speedtest-tracker  |       ██║     ███████╗██║██║   ██║
speedtest-tracker  |       ██║     ╚════██║██║██║   ██║
speedtest-tracker  |       ███████╗███████║██║╚██████╔╝
speedtest-tracker  |       ╚══════╝╚══════╝╚═╝ ╚═════╝
speedtest-tracker  |
speedtest-tracker  |    Brought to you by linuxserver.io
speedtest-tracker  | ───────────────────────────────────────
speedtest-tracker  |
speedtest-tracker  | To support the app dev(s) visit:
speedtest-tracker  | speedtest-tracker: https://github.com/sponsors/alexjustesen
speedtest-tracker  |
speedtest-tracker  | To support LSIO projects visit:
speedtest-tracker  | https://www.linuxserver.io/donate/
speedtest-tracker  |
speedtest-tracker  | ───────────────────────────────────────
speedtest-tracker  | GID/UID
speedtest-tracker  | ───────────────────────────────────────
speedtest-tracker  |
speedtest-tracker  | User UID:    1000
speedtest-tracker  | User GID:    1000
speedtest-tracker  | ───────────────────────────────────────
speedtest-tracker  | Linuxserver.io version: v0.20.6-ls30
speedtest-tracker  | Build-date: 2024-06-15T21:23:04+00:00
speedtest-tracker  | ───────────────────────────────────────
speedtest-tracker  |
speedtest-tracker  | Setting resolver to  <IP_ADDRESS>
speedtest-tracker  | Setting worker_processes to 4
speedtest-tracker  | generating self-signed keys in /config/keys, you can replace these with your own keys if required
speedtest-tracker  | ..+......+++++++++++++++++++++++++++++++++++++++*........+.+.........+...+........+....+..+++++++++++++++++++++++++++++++++++++++*...+..+....+...+...+.................+.......+........+......+.+......+.....+.......+..+...+...+....+.....+...+.......+...+...+..+...+...................+......+...............+..+......+......+......+.......+......+...........+...+.+.........+......+......+.....+.+..+.+............+.....+.......+..+.........+......+......+...+....+..+.+............+.....+...+...+....+...+.....+...+......+....+......+.....+.+..+...+.......+.....+......+..........+............+...+...........+..................+.......+......+..+.+......+.....+.+.........+...+.....+.......++++++
speedtest-tracker  | .+......+.....+....+.....+......+.+..+.+.....+.+...+...+.....+.............+............+..+...+....+...+..+................+..+.+..+....+......+..+......+.......+........+.+++++++++++++++++++++++++++++++++++++++*.+...+...+..+++++++++++++++++++++++++++++++++++++++*.+...+.............+............+...+.........+........+.............+..+...+....+...+.....+....+.........+..+..........+.....+.........+.+.........+.........+.....++++++
speedtest-tracker  | -----
speedtest-tracker  | [custom-init] No custom files found, skipping...
speedtest-tracker  | [ls.io-init] done.

Manual Speedtest runs fine

sqlite3 dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE IF NOT EXISTS "migrations" ("id" integer primary key autoincrement not null, "migration" varchar not null, "batch" integer not null);
INSERT INTO migrations VALUES(1,'2014_10_12_000000_create_users_table',1);
INSERT INTO migrations VALUES(2,'2014_10_12_100000_create_password_resets_table',1);
INSERT INTO migrations VALUES(3,'2018_08_08_100000_create_telescope_entries_table',1);
INSERT INTO migrations VALUES(4,'2019_08_19_000000_create_failed_jobs_table',1);
INSERT INTO migrations VALUES(5,'2019_12_14_000001_create_personal_access_tokens_table',1);
INSERT INTO migrations VALUES(6,'2022_08_18_015337_create_jobs_table',1);
INSERT INTO migrations VALUES(7,'2022_08_31_202106_create_results_table',1);
INSERT INTO migrations VALUES(8,'2022_09_27_212959_create_admin_user',1);
INSERT INTO migrations VALUES(9,'2022_10_20_211143_create_sessions_table',1);
INSERT INTO migrations VALUES(10,'2022_10_21_104903_create_settings_table',1);
INSERT INTO migrations VALUES(11,'2022_10_21_130121_create_influxdb_settings',1);
INSERT INTO migrations VALUES(12,'2022_10_24_152031_create_notifications_table',1);
INSERT INTO migrations VALUES(13,'2022_10_24_153150_create_database_notifications_settings',1);
INSERT INTO migrations VALUES(14,'2022_10_24_153411_create_thresholds_settings',1);
INSERT INTO migrations VALUES(15,'2022_11_11_134355_create_mail_notification_settings',1);
INSERT INTO migrations VALUES(16,'2022_12_22_125055_create_telegram_notification_settings',1);
INSERT INTO migrations VALUES(17,'2023_01_05_205157_create_cache_table',1);
INSERT INTO migrations VALUES(18,'2023_01_12_135235_update_results_table',1);
INSERT INTO migrations VALUES(19,'2023_02_12_131620_add_comments_to_results_table',1);
INSERT INTO migrations VALUES(20,'2023_02_28_000000_create_one_time_operations_table',1);
INSERT INTO migrations VALUES(21,'2023_03_06_002044_add_verify_ssl_to_influx_db_settings',1);
INSERT INTO migrations VALUES(22,'2023_05_07_000000_rename_password_resets_table',1);
INSERT INTO migrations VALUES(23,'2023_09_11_144858_create_webhook_notification_settings',1);
INSERT INTO migrations VALUES(24,'2023_09_11_225054_add_role_to_users_table',1);
INSERT INTO migrations VALUES(25,'2024_02_07_173217_add_telegram_disable_notification_to_notification_settings',1);
INSERT INTO migrations VALUES(26,'2024_02_18_000000_create_data_migration_settings',1);
INSERT INTO migrations VALUES(27,'2024_02_18_000050_update_locked_default_on_settings_table',1);
INSERT INTO migrations VALUES(28,'2024_02_18_100000_results_bad_json_table',1);
INSERT INTO migrations VALUES(29,'2024_02_19_134641_create_job_batches_table',1);
INSERT INTO migrations VALUES(30,'2024_02_19_134706_create_imports_table',1);
INSERT INTO migrations VALUES(31,'2024_02_19_134707_create_exports_table',1);
INSERT INTO migrations VALUES(32,'2024_02_19_134708_create_failed_import_rows_table',1);
INSERT INTO migrations VALUES(33,'2024_02_22_144650_create_discord_notification_settings',1);
CREATE TABLE IF NOT EXISTS "users" ("id" integer primary key autoincrement not null, "name" varchar not null, "email" varchar not null, "email_verified_at" datetime, "password" varchar not null, "remember_token" varchar, "created_at" datetime, "updated_at" datetime, "role" varchar);
INSERT INTO users VALUES(1,'Admin','admin@example.com','2024-07-09 09:29:35','$2y$12$WeXmYgoPwihw2rKLXbQpVeG61IPIl9MGtvQMoFf81.TRJH1rOn6u2',NULL,'2024-07-09 09:29:35','2024-07-09 09:29:35','admin');
CREATE TABLE IF NOT EXISTS "password_reset_tokens" ("email" varchar not null, "token" varchar not null, "created_at" datetime);
CREATE TABLE IF NOT EXISTS "telescope_entries" ("sequence" integer primary key autoincrement not null, "uuid" varchar not null, "batch_id" varchar not null, "family_hash" varchar, "should_display_on_index" tinyint(1) not null default '1', "type" varchar not null, "content" text not null, "created_at" datetime);
CREATE TABLE IF NOT EXISTS "telescope_entries_tags" ("entry_uuid" varchar not null, "tag" varchar not null, foreign key("entry_uuid") references "telescope_entries"("uuid") on delete cascade, primary key ("entry_uuid", "tag"));
CREATE TABLE IF NOT EXISTS "telescope_monitoring" ("tag" varchar not null, primary key ("tag"));
CREATE TABLE IF NOT EXISTS "failed_jobs" ("id" integer primary key autoincrement not null, "uuid" varchar not null, "connection" text not null, "queue" text not null, "payload" text not null, "exception" text not null, "failed_at" datetime not null default CURRENT_TIMESTAMP);
CREATE TABLE IF NOT EXISTS "personal_access_tokens" ("id" integer primary key autoincrement not null, "tokenable_type" varchar not null, "tokenable_id" integer not null, "name" varchar not null, "token" varchar not null, "abilities" text, "last_used_at" datetime, "expires_at" datetime, "created_at" datetime, "updated_at" datetime);
CREATE TABLE IF NOT EXISTS "jobs" ("id" integer primary key autoincrement not null, "queue" varchar not null, "payload" text not null, "attempts" integer not null, "reserved_at" integer, "available_at" integer not null, "created_at" integer not null);
CREATE TABLE IF NOT EXISTS "sessions" ("id" varchar not null, "user_id" integer, "ip_address" varchar, "user_agent" text, "payload" text not null, "last_activity" integer not null, primary key ("id"));
INSERT INTO sessions VALUES('f890nfE5rXeRqegsG2Wpwwpp0gQMGglsXZjDdeYc',1,'<IP_ADDRESS>','Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/<IP_ADDRESS> Safari/537.36 Edg/<IP_ADDRESS>','YTo3OntzOjY6Il90b2tlbiI7czo0MDoiV2Vjc0VBWDdZRWJ1R0ZlazYxZlRkVXd6ZGFWeU5IejhUVEZ3WjY3WiI7czozOiJ1cmwiO2E6MDp7fXM6OToiX3ByZXZpb3VzIjthOjE6e3M6MzoidXJsIjtzOjM5OiJodHRwczovL3NwZWVkdGVzdC5zYWZlaG9tZWxhbi5jb20vYWRtaW4iO31zOjY6Il9mbGFzaCI7YToyOntzOjM6Im9sZCI7YTowOnt9czozOiJuZXciO2E6MDp7fX1zOjUwOiJsb2dpbl93ZWJfNTliYTM2YWRkYzJiMmY5NDAxNTgwZjAxNGM3ZjU4ZWE0ZTMwOTg5ZCI7aToxO3M6MTc6InBhc3N3b3JkX2hhc2hfd2ViIjtzOjYwOiIkMnkkMTIkV2VYbVlnb1B3aWh3MnJLTFhiUXBWZUc2MUlQSWw5TUd0dlFNb0ZmODEuVFJKSDFyT242dTIiO3M6ODoiZmlsYW1lbnQiO2E6MDp7fX0=',1720517879);
CREATE TABLE IF NOT EXISTS "notifications" ("id" varchar not null, "type" varchar not null, "notifiable_type" varchar not null, "notifiable_id" integer not null, "data" text not null, "read_at" datetime, "created_at" datetime, "updated_at" datetime, primary key ("id"));
CREATE TABLE IF NOT EXISTS "cache" ("key" varchar not null, "value" text not null, "expiration" integer not null, primary key ("key"));
INSERT INTO cache VALUES('laravel_cache_settings.App\Settings\DataMigrationSettings','s:75:"O:34:"App\Settings\DataMigrationSettings":1:{s:17:"bad_json_migrated";b:1;}";',2035877375);
INSERT INTO cache VALUES('laravel_cache_287b58015ec6ed41cc45119562d7402bb1069aed:timer','i:1720517440;',1720517440);
INSERT INTO cache VALUES('laravel_cache_287b58015ec6ed41cc45119562d7402bb1069aed','i:2;',1720517440);
INSERT INTO cache VALUES('laravel_cache_settings.App\Settings\InfluxDbSettings','s:176:"O:29:"App\Settings\InfluxDbSettings":6:{s:10:"v2_enabled";b:0;s:6:"v2_url";N;s:6:"v2_org";N;s:9:"v2_bucket";s:17:"speedtest-tracker";s:8:"v2_token";N;s:13:"v2_verify_ssl";b:1;}";',2035877445);
INSERT INTO cache VALUES('laravel_cache_settings.App\Settings\NotificationSettings','s:701:"O:33:"App\Settings\NotificationSettings":20:{s:16:"database_enabled";b:0;s:25:"database_on_speedtest_run";b:0;s:29:"database_on_threshold_failure";b:0;s:12:"mail_enabled";b:0;s:21:"mail_on_speedtest_run";b:0;s:25:"mail_on_threshold_failure";b:0;s:15:"mail_recipients";N;s:16:"telegram_enabled";b:0;s:29:"telegram_disable_notification";b:0;s:25:"telegram_on_speedtest_run";b:0;s:29:"telegram_on_threshold_failure";b:0;s:19:"telegram_recipients";N;s:15:"webhook_enabled";b:0;s:24:"webhook_on_speedtest_run";b:0;s:28:"webhook_on_threshold_failure";b:0;s:12:"webhook_urls";N;s:15:"discord_enabled";b:0;s:24:"discord_on_speedtest_run";b:0;s:28:"discord_on_threshold_failure";b:0;s:16:"discord_webhooks";N;}";',2035877866);
CREATE TABLE IF NOT EXISTS "cache_locks" ("key" varchar not null, "owner" varchar not null, "expiration" integer not null, primary key ("key"));
CREATE TABLE IF NOT EXISTS "results_bad_json" ("id" integer primary key autoincrement not null, "ping" float, "download" integer, "upload" integer, "server_id" integer, "server_host" varchar, "server_name" varchar, "url" varchar, "scheduled" tinyint(1) not null default '0', "data" text, "created_at" datetime not null default CURRENT_TIMESTAMP, "successful" tinyint(1) not null default '1', "comments" text);
CREATE TABLE IF NOT EXISTS "operations" ("id" integer primary key autoincrement not null, "name" varchar not null, "dispatched" varchar check ("dispatched" in ('sync', 'async')) not null, "processed_at" datetime);
CREATE TABLE IF NOT EXISTS "settings" ("id" integer primary key autoincrement not null, "group" varchar not null, "name" varchar not null, "locked" tinyint(1) not null default '0', "payload" text not null, "created_at" datetime, "updated_at" datetime);
INSERT INTO settings VALUES(1,'influxdb','v2_enabled',0,'false','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(2,'influxdb','v2_url',0,'null','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(3,'influxdb','v2_org',0,'null','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(4,'influxdb','v2_bucket',0,'"speedtest-tracker"','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(5,'influxdb','v2_token',0,'null','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(6,'notification','database_enabled',0,'false','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(7,'notification','database_on_speedtest_run',0,'false','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(8,'notification','database_on_threshold_failure',0,'false','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(9,'threshold','absolute_enabled',0,'false','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(10,'threshold','absolute_download',0,'0','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(11,'threshold','absolute_upload',0,'0','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(12,'threshold','absolute_ping',0,'0','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(13,'notification','mail_enabled',0,'false','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(14,'notification','mail_on_speedtest_run',0,'false','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(15,'notification','mail_on_threshold_failure',0,'false','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(16,'notification','mail_recipients',0,'null','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(17,'notification','telegram_enabled',0,'false','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(18,'notification','telegram_on_speedtest_run',0,'false','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(19,'notification','telegram_on_threshold_failure',0,'false','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(20,'notification','telegram_recipients',0,'null','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(21,'influxdb','v2_verify_ssl',0,'true','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(22,'notification','webhook_enabled',0,'false','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(23,'notification','webhook_on_speedtest_run',0,'false','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(24,'notification','webhook_on_threshold_failure',0,'false','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(25,'notification','webhook_urls',0,'null','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(26,'notification','telegram_disable_notification',0,'false','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(27,'data_migration','bad_json_migrated',0,'true','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(29,'notification','discord_enabled',0,'false','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(30,'notification','discord_on_speedtest_run',0,'false','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(31,'notification','discord_on_threshold_failure',0,'false','2024-07-09 09:29:35','2024-07-09 09:29:35');
INSERT INTO settings VALUES(32,'notification','discord_webhooks',0,'null','2024-07-09 09:29:35','2024-07-09 09:29:35');
CREATE TABLE IF NOT EXISTS "results" ("id" integer primary key autoincrement not null, "service" varchar not null default 'ookla', "ping" float, "download" integer, "upload" integer, "comments" text, "data" text, "status" varchar not null, "scheduled" tinyint(1) not null default '0', "created_at" datetime, "updated_at" datetime);
INSERT INTO results VALUES(1,'ookla',7.2460000000000004405,8719830,4437271,NULL,'{"type":"result","timestamp":"2024-07-09T09:37:46Z","ping":{"jitter":0.624,"latency":7.246,"low":7.051,"high":8.866},"download":{"bandwidth":8719830,"bytes":124794720,"elapsed":15003,"latency":{"iqm":29.522,"low":8.014,"high":301.131,"jitter":8.724}},"upload":{"bandwidth":4437271,"bytes":40986720,"elapsed":9310,"latency":{"iqm":51.914,"low":22.995,"high":348.846,"jitter":8.355}},"packetLoss":0,"isp":"Zen Internet","interface":{"internalIp":"<IP_ADDRESS>","name":"eth0","macAddr":"02:42:AC:14:00:02","isVpn":false,"externalIp":"<IP_ADDRESS>"},"server":{"id":40788,"host":"speedtest02a.web.zen.net.uk","port":8080,"name":"Zen Internet","location":"London","country":"United Kingdom","ip":"<IP_ADDRESS>"},"result":{"id":"1aeae31e-4713-424b-9794-8a118dcff734","url":"https:\/\/www.speedtest.net\/result\/c\/1aeae31e-4713-424b-9794-8a118dcff734","persisted":true}}','completed',0,'2024-07-09 09:37:18','2024-07-09 09:37:46');
CREATE TABLE IF NOT EXISTS "job_batches" ("id" varchar not null, "name" varchar not null, "total_jobs" integer not null, "pending_jobs" integer not null, "failed_jobs" integer not null, "failed_job_ids" text not null, "options" text, "cancelled_at" integer, "created_at" integer not null, "finished_at" integer, primary key ("id"));
CREATE TABLE IF NOT EXISTS "imports" ("id" integer primary key autoincrement not null, "completed_at" datetime, "file_name" varchar not null, "file_path" varchar not null, "importer" varchar not null, "processed_rows" integer not null default '0', "total_rows" integer not null, "successful_rows" integer not null default '0', "user_id" integer not null, "created_at" datetime, "updated_at" datetime, foreign key("user_id") references "users"("id") on delete cascade);
CREATE TABLE IF NOT EXISTS "exports" ("id" integer primary key autoincrement not null, "completed_at" datetime, "file_disk" varchar not null, "file_name" varchar, "exporter" varchar not null, "processed_rows" integer not null default '0', "total_rows" integer not null, "successful_rows" integer not null default '0', "user_id" integer not null, "created_at" datetime, "updated_at" datetime, foreign key("user_id") references "users"("id") on delete cascade);
CREATE TABLE IF NOT EXISTS "failed_import_rows" ("id" integer primary key autoincrement not null, "data" text not null, "import_id" integer not null, "validation_error" text, "created_at" datetime, "updated_at" datetime, foreign key("import_id") references "imports"("id") on delete cascade);
DELETE FROM sqlite_sequence;
INSERT INTO sqlite_sequence VALUES('migrations',33);
INSERT INTO sqlite_sequence VALUES('users',1);
INSERT INTO sqlite_sequence VALUES('results_bad_json',0);
INSERT INTO sqlite_sequence VALUES('settings',32);
INSERT INTO sqlite_sequence VALUES('results',1);
INSERT INTO sqlite_sequence VALUES('jobs',1);
CREATE UNIQUE INDEX "users_email_unique" on "users" ("email");
CREATE INDEX "password_resets_email_index" on "password_reset_tokens" ("email");
CREATE UNIQUE INDEX "telescope_entries_uuid_unique" on "telescope_entries" ("uuid");
CREATE INDEX "telescope_entries_batch_id_index" on "telescope_entries" ("batch_id");
CREATE INDEX "telescope_entries_family_hash_index" on "telescope_entries" ("family_hash");
CREATE INDEX "telescope_entries_created_at_index" on "telescope_entries" ("created_at");
CREATE INDEX "telescope_entries_type_should_display_on_index_index" on "telescope_entries" ("type", "should_display_on_index");
CREATE INDEX "telescope_entries_tags_tag_index" on "telescope_entries_tags" ("tag");
CREATE UNIQUE INDEX "failed_jobs_uuid_unique" on "failed_jobs" ("uuid");
CREATE INDEX "personal_access_tokens_tokenable_type_tokenable_id_index" on "personal_access_tokens" ("tokenable_type", "tokenable_id");
CREATE UNIQUE INDEX "personal_access_tokens_token_unique" on "personal_access_tokens" ("token");
CREATE INDEX "jobs_queue_index" on "jobs" ("queue");
CREATE INDEX "sessions_user_id_index" on "sessions" ("user_id");
CREATE INDEX "sessions_last_activity_index" on "sessions" ("last_activity");
CREATE INDEX "notifications_notifiable_type_notifiable_id_index" on "notifications" ("notifiable_type", "notifiable_id");
CREATE UNIQUE INDEX "settings_group_name_unique" on "settings" ("group", "name");
COMMIT;

Environment are only applied when creating the container, just pull and start won't work,
Can you run docker compose down && docker compose up -d

Not my first rodeoPlease see aboveI deleted everything and started againNo joySent from my iPadOn 9 Jul 2024, at 11:41, Sven van Ginkel @.***> wrote:
Environment are only applied when creating the container, just pull and start won't work,
Can you run docker compose down && docker compose up -d
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you were mentioned.Message ID: @.***>

I've just copied your compose file from above and except for having to change the container_name (Error response from daemon: Invalid container name (speedtest-tracker:latest), only [a-zA-Z0-9][a-zA-Z0-9_.-] are allowed) and the APP_KEY it's started up OK and shows a next Speedtest at 12 UTC:

So i've just built the Dockerfile locally, run from the image that created, it works, if I pull it from the linuxserver.io repo, it doesn't..
No idea why, no time to investigate right now..

Funnily enough, this works for and runs a speedtest every hour on the hour:
SPEEDTEST_SCHEDULE=0 * * * *
FWIW, I don't see the graphs anymore, either. But the results are all in the database. No idea when that happened, since I don't check the dashboard all the time, but probably after one of the recent updates.


Schemas for the api payloads

We could have a file with schemas for the payloads expected by each endpoint.
This is how I see the file to look like
module.exports = {
  COMMENT_ADD: [
    {
      "property": "user_key",
      "required": true,
      "type": "String",
      "default": null,
    },
    {
      "property": "movie_id",
      "required": true,
      "type": "Number",
      "default": null,
    }
  ],
  COMMENT_DELETE: [
    {
      "property": "user_key",
      "required": true,
      "type": "String",
      "default": null,
    },
    {
      "property": "comment_id",
      "required": true,
      "type": "Number",
      "default": null,
    }
  ]
}

The property names are the keys expected by the api but we can change them to the name of the variable we are going to use to store that input from the user. That way, we can quickly write a function that searches this file for the schema of that input and makes sure its of the correct type, not null if its required. If a required param isn't passed but it has a default value, we can easily set that as well by reading the config info from this file

We could extend the Params file to actually take an object for each param that would have its schema info.
I will try to find some time to try it out and see if it makes sense to do something like this for the wrapper


Analyze-bloat workflow

This workflow uses Bloaty McBloatface to generate binary bloat data. Additionally, if the event is a PR, a diff between PR HEAD and base will be generated.

oh, this is very nice

Merged, thanks


Local Agent used for service list reads (#276)

If defined, the local consul agent is used to read list of services.
Otherwise, a random agent is picked, but only from the cache of agents
already syncing registrations.
This change prevents situations, where contacting a random agent in the
cluster fails, because it has no ACL-DC configured.

Coverage increased (+0.2%) to 90.575% when pulling 004fd465ebc0be568c4387c7f78fe73d2f2b564b on 276-local-agent-reads into 3fb8781714a0c60cde389ebe7da998a76de56ab1 on master.

If defined, the local consul agent is used to read list of services. Otherwise, a random agent is picked, but only from the cache of agents already syncing registrations. This change prevents situations, where contacting a random agent in the cluster fails, because it has no ACL-DC configured.


Error: bad base-64

When I give the path to the pdf-View it returns the error: "bad base-64".
I am using react-native-fetch-blob which returns a base64.
I then create the pdf base64 pdf with:
let pdfBase64 = 'data:application/pdf;base64,'+base64Str;
I know this is the correct way to create a base64 because I already populated an Image with:
let imageBase64 = 'data:image/jpeg;base64,'+base64Str;
Anyone have any suggestions?
Thanks
...and yes it is given the correct path :)

Solution
Check out this solution on Stackoverflow.


Add a wait time for task dispatchers

What changed?
Add a wait time for task dispatchers

Why?
To increase the rate of sync match and local match.

How did you test it?
Existing tests and manual bench tests

Potential risks
This is protected by a dynamicconfig property, it's easy to rollback

Release notes

Documentation Changes

How does simulation output look before/after this change?


Code | Numeric Pattern 156

Hi, I'd like to work on this issue. Can you please assign it to me? Thank you


Karma tests do not compile for target selected in src/tsconfig.json

Currently, when using Angular 2 CLI 1.0.0-beta.15 and using a target of es2015, the Karma tests do not seem to use this es2015 target from the src/tsconfig.json. We noticed that executing a Karma test for a test which uses ES2015 async/generator/yield feature, the console prints an error after running ng test:
Async functions are only available when targeting ECMAScript 2015 or higher.

Delving a bit into angular-cli sources, it seems that the webpack-build-test.js contains a hardcoded target value of "es5" for the typescript loader. It must be configurable to be able to use the typescript version configured in the src/tsconfig.json.

@TheLarkInn do you know the reason for hardcoded target/module in webpack-build-test.js?

I think this is not the case (any more).
ng new test-app
cd test-app
edit src/tsconfig.json with target: "es2016". Saved it.
npm run test , npm test # both work
ng test # fails, won't even start the tests, some weird issue with 'Promise'


Better examples in documentation

Added better examples for cases where instances are used.

@vodkabears Could you please take a look at this?


Epic icon add

Basically this is all I do with my life now
please help

but i spent all that time making me own :(:(:(::(:(

actually expert made it but here it is

feel free to merge. don't care.


paper-elements.dart: private symbols are not supported

This issue was originally filed by @Fox32

Using/importing paper-input-decorator (direct/indirect) cause the warning:
"private symbols are not supported"
for the line from paper-input-decorator:
<span id="labelText" class="label-text" invisible?="{{!_labelVisible}}" animated?="{{labelAnimated}}">
In the paper_elements version 0.6.0

This issue has been moved to dart-lang/polymer-dart#346.


[Bug]: Blocked Apps gets updated

The problem
hey,
i added after the install to the excluded_apps.txt some entrys (mozilla.thunderbird) to block them from update, but it seems like they still get updated - what is an big problem bc thunderbird tends to update to beta over winget.
Any ideas why the block list is ignored?
edit: just found an entry for mozilla.thunderbird in the winget_system_apps.txt - is there an problem maybe?
What version of WAU has the issue?
1.18.1
What version of Windows are you using (ex. Windows 11 22H2)?
Windows 10 to Windows 11 22H2
What version of winget are you using?
1.6.3133
Log information
Updating Mozilla Thunderbird (x64 de) from 115.3.3 to 115.4.1...
08:57:56 - ##########   WINGET UPGRADE PROCESS STARTS FOR APPLICATION ID 'Mozilla.Thunderbird.Beta'   ##########
08:57:56 - -> Running: Winget upgrade --id Mozilla.Thunderbird.Beta --accept-package-agreements --accept-source-agreements -h

Additional information
No response

Hi,
You said you've put mozilla.thunderbird in you black list. In the log, Mozilla.Thunderbird.Beta is updating.
Simply add Mozilla.Thunderbird.Beta to your black list too.

19:18:22 - Checking application updates on Winget Repository...
-> Available update : Mozilla Thunderbird (x64 de). Current version : 115.3.3. Available version : 115.4.1.
-> Available update : Mozilla Firefox (x64 de). Current version : 118.0.2. Available version : 119.0.
19:18:26 - Updating Mozilla Thunderbird (x64 de) from 115.3.3 to 115.4.1...
19:18:26 - ##########   WINGET UPGRADE PROCESS STARTS FOR APPLICATION ID 'Mozilla.Thunderbird.Beta'   ##########
19:18:27 - -> Running: Winget upgrade --id Mozilla.Thunderbird.Beta --accept-package-agreements --accept-source-agreements -h

look this is some kind of strange behavoiur - it seems like he pulls thunderbird an then switches to beta - or did i read the logs wrong?


Handle code blocks using uppercase letters

Just letting you know that ```JS blocks are not highlighted.

On both GitHub & Gist, they are:
// this uses ```JS
function foo () {
  return 42;
}

// and this lowercase: ```js
function foo () {
  return 42;
}

This is indeed because of this. Is it possible to make these regular expressions case-insensitive?
If not, a VIM macro can copy them to contain js|JS and so. :laughing:
I'd be glad to push some contributions, but before doing so, like always, it's better to discuss.

@izuzak Can you please take a look here? :smile_cat:

I think it would be neat to make the highlighting work for both JS and js, but wouldn't call it high priority.
Not sure what the best approach would be. @kevinsawicki would using the ignore case option on those groups be the way to go here?

would using the ignore case option on those groups be the way to go here?

Yup, should be fine to do that

@izuzak @kevinsawicki  Addressed in #123 :sparkle:


autoTestDiscoverOnSaveEnabled setting causing significant decreases in VS Code performance

Type: Bug
I ran extension bisect to figure out which extension was causing trouble with the performance of VS Code on my machine. Extension Bisect led to detecting vscode-python (and associated extensions pylint, isort, pylance) to be the problem causers. The troubles I commonly encounter include:

Using the built-in source control to stage changes, commit, push, pull changes, etc. can take over 10 minutes
Built in debugger takes over 10 minutes to start execution and sometimes gets stuck while stepping over/into lines after a break point
Copy/pasting, deleting, creating files/folders using the file explorer takes a very long time
Can't create new lines in code so I need to resort to copy-pasting new lines since the Enter key doesn't do anything.

The only way I can fix performance is by reloading the window, which I have to do over 10 times a day because the slowdowns are very consistent. This is a big headache for me as I code almost exclusively in Python.
Extension version: 2023.10.1
VS Code version: Code 1.79.0 (Universal) (b380da4ef1ee00e224a15c1d4d9793e27c2b6302, 2023-06-07T14:29:00.206Z)
OS version: Darwin arm64 22.5.0
Modes:

System Info

Item
Value

CPUs
Apple M1 (8 x 24)

GPU Status
2d_canvas: enabledcanvas_oop_rasterization: disabled_offdirect_rendering_display_compositor: disabled_off_okgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onopengl: enabled_onrasterization: enabledraw_draw: disabled_off_okvideo_decode: enabledvideo_encode: enabledvulkan: disabled_offwebgl: enabledwebgl2: enabledwebgpu: enabled

Load (avg)
3, 2, 2

Memory (System)
16.00GB (0.15GB free)

Process Argv
--crash-reporter-id 0bdbd0bc-c581-437f-8eff-d3312dcce3ec

Screen Reader
no

VM
0%

A/B Experiments
vsliv368:30146709
vsreu685:30147344
python383cf:30185419
vspor879:30202332
vspor708:30202333
vspor363:30204092
vswsl492:30256859
vslsvsres303:30308271
vserr242cf:30382550
pythontb:30283811
vsjup518:30340749
pythonptprofiler:30281270
vshan820:30294714
vstes263cf:30335440
vscoreces:30445986
vscod805cf:30301675
binariesv615:30325510
bridge0708:30335490
bridge0723:30353136
vsaa593cf:30376535
pythonvs932:30410667
vsclangdf:30486550
c4g48928:30535728
dsvsc012:30540252
pynewext54:30695312
azure-dev_surveyone:30548225
3biah626:30602489
pyind779:30671433
f6dab269:30613381
pythonsymbol12:30671437
a9j8j154:30646983
showlangstatbar:30737416
vsctsb:30748421
pythonms35:30701012
03d35959:30757346
pythonfmttext:30731395
pythoncmv:30756943
fixshowwlkth:30730052
showindicator:30766890
pythongtdpath:30739704
i26e3531:30763805
dh2dc718:30763024

I set the
"python.testing.autoTestDiscoverOnSaveEnabled": true

setting to false and the slowdown disappeared completely. I will enable it and attach the file watcher output once I'm able to replicate the error.

Would it be possible for you to provide a minimal repro or a repository that we can use to repro this.

I'm working on the PennyLane repository. There are a lot of tests, which could be why this setting being enabled impacts performance so much.

Here's a snippet of the file watcher when I was noticing the performance degradation. The two major things I noticed were:

Not being able to create new lines
Git extension would not let me stage/commit changes

log.ts:401 TRACE [File Watcher (parcel)] [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/.tox/unit-tests/log/2-commands[0].log
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/.tox/unit-tests/log/2-commands[0].log
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [CHANGED] /Users/mudit.pandey/repos/braket-plugin-fork/.tox/unit-tests/log/1-install_package.log
log.ts:401 TRACE [File Watcher (parcel)] [ADDED] /Users/mudit.pandey/repos/braket-plugin-fork/test/unit_tests/__pycache__/test_translation.cpython-310-pytest-7.4.0.pyc
log.ts:401 TRACE [File Watcher (parcel)] [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/test/unit_tests/__pycache__/test_translation.cpython-310-pytest-7.4.0.pyc.83295
log.ts:401 TRACE [File Watcher (parcel)] [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/test/unit_tests/__pycache__/test_translation.cpython-310-pytest-7.4.0.pyc.83298
log.ts:401 TRACE [File Watcher (parcel)] [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/test/unit_tests/__pycache__/test_translation.cpython-310-pytest-7.4.0.pyc.83299
log.ts:401 TRACE [File Watcher (parcel)] [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/test/unit_tests/__pycache__/test_translation.cpython-310-pytest-7.4.0.pyc.83302
log.ts:401 TRACE [File Watcher (parcel)] [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/test/unit_tests/__pycache__/test_translation.cpython-310-pytest-7.4.0.pyc.83306
log.ts:401 TRACE [File Watcher (parcel)] [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/test/unit_tests/__pycache__/test_translation.cpython-310-pytest-7.4.0.pyc.83309
log.ts:401 TRACE [File Watcher (parcel)] [ADDED] /Users/mudit.pandey/repos/braket-plugin-fork/test/unit_tests/__pycache__/test_translation.cpython-310-pytest-7.4.0.pyc
log.ts:401 TRACE [File Watcher (parcel)] [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/test/unit_tests/__pycache__/test_translation.cpython-310-pytest-7.4.0.pyc.83298
log.ts:401 TRACE [File Watcher (parcel)] [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/test/unit_tests/__pycache__/test_translation.cpython-310-pytest-7.4.0.pyc.83300
log.ts:401 TRACE [File Watcher (parcel)] [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/test/unit_tests/__pycache__/test_translation.cpython-310-pytest-7.4.0.pyc.83301
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/test/unit_tests/__pycache__/test_translation.cpython-310-pytest-7.4.0.pyc.83295
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/test/unit_tests/__pycache__/test_translation.cpython-310-pytest-7.4.0.pyc.83298
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/test/unit_tests/__pycache__/test_translation.cpython-310-pytest-7.4.0.pyc.83299
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/test/unit_tests/__pycache__/test_translation.cpython-310-pytest-7.4.0.pyc.83302
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/test/unit_tests/__pycache__/test_translation.cpython-310-pytest-7.4.0.pyc.83306
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/test/unit_tests/__pycache__/test_translation.cpython-310-pytest-7.4.0.pyc.83309
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/test/unit_tests/__pycache__/test_translation.cpython-310-pytest-7.4.0.pyc.83300
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/test/unit_tests/__pycache__/test_translation.cpython-310-pytest-7.4.0.pyc.83301
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [ADDED] /Users/mudit.pandey/repos/braket-plugin-fork/test/unit_tests/__pycache__/test_translation.cpython-310-pytest-7.4.0.pyc
log.ts:401 TRACE [File Watcher (parcel)] [ADDED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83301.031808
log.ts:401 TRACE [File Watcher (parcel)] [ADDED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83306.705163
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [ADDED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83301.031808
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [ADDED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83306.705163
log.ts:401 TRACE [File Watcher (parcel)] [ADDED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83299.207696
log.ts:401 TRACE [File Watcher (parcel)] [ADDED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83300.822956
log.ts:401 TRACE [File Watcher (parcel)] [CHANGED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83301.031808
log.ts:401 TRACE [File Watcher (parcel)] [CHANGED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83306.705163
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [ADDED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83299.207696
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [ADDED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83300.822956
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [CHANGED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83301.031808
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [CHANGED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83306.705163
log.ts:401 TRACE [File Watcher (parcel)] [ADDED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83298.055672
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [ADDED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83298.055672
log.ts:401 TRACE [File Watcher (parcel)] [CHANGED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83298.055672
log.ts:401 TRACE [File Watcher (parcel)] [ADDED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83302.070035
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [CHANGED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83298.055672
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [ADDED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83302.070035
log.ts:401 TRACE [File Watcher (parcel)] [ADDED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83309.636014
log.ts:401 TRACE [File Watcher (parcel)]  >> normalized [ADDED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83309.636014
log.ts:401 TRACE [File Watcher (parcel)] [ADDED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage
log.ts:401 TRACE [File Watcher (parcel)] [ADDED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83295.542263
log.ts:401 TRACE [File Watcher (parcel)] [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83299.207696
log.ts:401 TRACE [File Watcher (parcel)] [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83300.822956
log.ts:401 TRACE [File Watcher (parcel)] [DELETED] /Users/mudit.pandey/repos/braket-plugin-fork/.coverage.MacBookAir-FVFG339QQ6LR.83302.070035
log.ts:401

I think there might be two different problems here:

I think the filtering for file watching should exclude pyc I think this might be causing the problem.
For the Git extension issue it might be independent of this

/cc @eleanorjboyd Could you take a look at the pattern we use for file system watching in testing to see if we get *.pyc events?

closing since the fix will be the same as https://github.com/microsoft/vscode-python/issues/21014. Thanks!


Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable

Some missed cases, largely because of parenthesis blocking my original search

Thanks!

Thank you!


Merge time periods like “2 weeks and 3 days”, “1 month 3 days”

Time periods such as "1 week and two days" should be extracted as one entity, not two.

Fixed.


CLI: Toggle default output format based on the number of violations

In #7349 and #7352 the default output of ruff check includes much more content. However, this comes with a performance degradation for large numbers of violations as computing the display of source and fixes is expensive. A possible solution is to toggle the default output format between "full" and "concise" (#7350) depending on the number of detected violations. If we see more than 30 violations (for example), we should switch to the concise output. If --format full or --format concise is provided explicitly (or in the configuration file) we should always respect the given format regardless of the number of violations.

If --format full or --format concise is provided explicitly (or in the configuration file) we should always respect the given format regardless of the number of violations.

I'm undecided on this. I think the use case here is that sometimes it's desired to get the full output, even if computing the output takes a long or prints a lot of text (e.g., when piping in CI). However, I'm concerned that the default full (no configuration) behavior is different from the explicit `output-format: full.
The main motivation for truncating fixes (we could, for example, print the first n violations in full, then print a message that Ruff has switched to concise) is to protect users from being overwhelmed and having a "slow"  experience. I think I would want that protection even when I explicitly say that I want the full output format.
One less implicit solution would be to define a new full-always or similar output format.

I think I would want that protection even when I explicitly say that I want the full output format.

I don't really follow this, why? If you explicitly request the full format it seems weird that we would not respect that.

However, I'm concerned that the default full (no configuration) behavior is different from the explicit output-format: full.

We would encode the default behavior with a separate key like "auto" or "default" instead of overloading "full" to have two separate behaviors.

I don't really follow this, why? If you explicitly request the full format it seems weird that we would not respect that.

Because I understood that having the "automatic" output format (that switches between full and concise) and the "full" output format use the same configuration name. But that's not the case according to:

We would encode the default behavior with a separate key like "auto" or "default" instead of overloading "full" to have two separate behaviors.

So I'm okay with printing all diagnostics when explicitly requesting full (and not auto)


a low-level questions

The "README.md" file says use multiple training stages, the script classification/multi_stage_train.py can be used to automate that:
python multi_stage_train.py --annotations_json=PATH_TO_BE_CONFIGURED/iwildcam2021_train_annotations.json --megadetector_results_json=PATH_TO_BE_CONFIGURED/iwildcam2021train_originalimage_megadetector_v4.1_results_parsed.json
but i can not find the file "iwildcam2021train_originalimage_megadetector_v4.1_results_parsed.json",where can i get it

Hi @Little-btf, you can find it here: https://drive.google.com/drive/folders/19LNFfvEVmOf1NDsT0jn4v47socpFbXek?usp=sharing

thank you for your response!
and i find the download link is in the "README.md" file.
I will read the document more carefully in the future


[SPARK-41686][BUILD] Upgrade Apache Ivy to 2.5.1

What changes were proposed in this pull request?
Upgrade Apache Ivy from 2.5.0 to 2.5.1
Why are the changes needed?
CVE-2022-37865
and
CVE-2022-37866
Does this PR introduce any user-facing change?
No.
How was this patch tested?
Pass GA

@tobiasstadler mind creating a PR against master branch? We can backport the change to other branches.

@HyukjinKwon This is actually a backport of SPARK-41030.

Merged to branch-3.3.


some questions related:)

Firstly thank you for this repository, which enables us to write code once and enjoy isomorphic application easily.
I have several questions to ask and need someone to communicate with so that I will not struggle at some knowledge pieces.

I use window object which doesn't exist in server side in my code, it be ignored while compiling, right? And what if I use requestAnimationFrame or setTimer in my code, will it leads to memory leak? or It can be refined by webpack config target: node.

How can I do client side rendering for specific route? By setting router separately in the express server ? for example not to use app.get('/*'),use app.get('/login') if I want login page can do client side rendering?

how can I do client side rendering fallback when the traffic is too busy?

Thanks in advance. I am newbie and just some clews is also ok.

I wouldn't go for automatically removing window calls, that would lead to rather unexpected code.
You are personally (now) aware that window calls do not work on SSR, but your team mates might not, and they'll be wondering why it's silently removing their code ;)
Therefore it's good that they'll get an error, it just means you're supposed to check if window is actually available before calling a function on it.
I always just do a quick check a la typeof window !== 'undefined', if you want to make this more autological you could even put it in a export as thus

export const isServer = typeof window !== 'undefined'

Node is already being targeted is already targeted on the serverside.
setInterval / setTimeout will work regardless of platform. requestAnimationFrame is browser only.
Memory leaks in JS generally are fairly hard to create, but should be something to note, sure.
Don't just blindly push to an global array everytime your setInterval function gets called (or something).

The default template includes react router and makes sure it is called from the serverside and clientside.
So no need for manually defining a route on the serverside, the appropriate route will be rendered from both the server as clientside.

Cool question. I've done this before myself, but sadly it's not that simple.
What you'll have to do is create a sitemap that requests all pages available, either through fetch or just by calling react-router's match for each page you have available.
Then you will need a static webserver like apache or nginx to serve up those generated HTML files.
Do keep in mind that stuff like POST'ing and query parameters will not work anymore.

@jariz Thank you for the reply :) I think I didn't fully understand the answer to the second question.
For example, I have an app using razzle with react-router, and in the app I have three routes pointing to three components.
My current understanding is that when I make a request to url http://localhost:3000/first, the entire app will be renderedToString, and send to the client. how can I only let localhost:3000/second do client side rendering ??

I guess you could theoretically make a new route (before the catch all * route), that just serves the bundle and has a empty root tag.
You'd have to serve a bundle that has a different entry point though, because the current entry point calls hydrate, which assumes the HTML is already initialized.
Do not change hydrate to render because this is a really bad for performance in cases where you are doing SSR. (it is also deprecated and will be removed in react 17)
But yea, just because you can, doesn't mean you should.
You'd lose all benefits of server side because there would be a slower initial page load, and you already have the entire SSR setup ready, so why only partially implement it?
The choice is up to you ofcourse, I'm just wondering what the motivation behind this could be.

Also, if things get 'busy', disabling SSR won't really have all that much of a difference.
It is rather fast, especially now with React 16, and if you're already serving all your stuff through express, rendering your react app as well won't really make that much of a difference performance wise.
I don't really have the numbers to proof it (blog post idea!), but that's been my personal experience working with a rather large website that went down a couple times, in the end always turning out that SSR wasn't the culprit.

Yes, I think you are right. In my project I use react-loadable to do code-splitting and lazy load. Though I didn't apply some cache strategy and the performance is not bad I think.
And the motivation is that I read some blogs mentioned this idea partially server side rendering. And I just want to have a try. I wonder how can I do that in this project. Now I will not do that because no need:)
And I will learn more about question3 if I am available, thank you for your answer and thank you all your guys for this awesome repository:)

👍

@jariz Do you have any blog post about question #3? Or do you at least know how to detect when we need to do client side rendering fallback?


added console output for all failed jobs.

in the console output this job now also displays the failure reason for jobs that were built longer ago than 24 hours.

nice :+1:


Using activeSurveyFlow to make flow async

Fixes #2815

@shobhitagarwal1612  PTAL?

Won't this change now start failing to get the job as survey is null?

Won't this change now start failing to get the job as survey is null?

Should we make the job as a flow too?

The question remains the same, will that pass on the error to the next item or will it stabilize the screen when survey is null?


Mobile friendly version

Are you planning for a mobile friendly version?
It could be done with some kind of touch interface where one can touch commands together.
[git] [commit]
[git] [checkout] [select-a-branch-from-the-list]
[git] [checkout] [pick-head-pick-~-pick-1]

Probably not anytime soon, I figure this type of educational content is better suited for desktop. Most folks use git on desktop as well. Maintaining both doesn't sound super fun either :P

I don't completely agree ;-)   I guess it would be quite cool to be able to discuss git operations anywhere anyplace.   Maybe in future we will find someone who is willing to take this challenge.


Submit/update indicator options

The "Response body" section does not have a complete list of supported parameters and values. See https://github.com/MicrosoftDocs/microsoft-365-docs/issues/5887 for related info.

Incomplete list of valid values for "indicatorType". At least "FileMd5" and "CertificateThumbprint" are valid but not documented. Unsure of other possible values.
Incomplete list of valid values for "action". At least "Warn", "Block", "Audit", and "BlockAndRemediate" are valid but not documented. Unsure of other possible values.

Additionally, the following fields are valid but not documented:

category
educateUrl
bypassDurationHours
notificationId
notificationBody
version
mitreTechniques
historicalDetection (if enabled on tenant)
lookBackPeriod (if enabled on tenant)
generateAlert
additionalInfo
externalId
certificateInfo

The "application" field is documented as updatable but it will only work for new indicators, it will not update the value on an existing indicator. Additionally, the "version" and "certificateInfo" fields which are undocumented can only be used for submitting new indicators and will not update the value on an existing indicator.
Also, I'm not sure if it's the intended behavior of the API, but if you submit an update to an existing indicatorValue but change the action, such as from "Alert" to "Block", it will create a duplicate indicator rather than updating the existing one.

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

ID: 0ea229ca-05ce-38c5-003e-4d811b0bed25
Version Independent ID: 765b3d95-745c-357b-b19e-87ee0b0a1661
Content: Submit or Update Indicator API
Content Source: microsoft-365/security/defender-endpoint/post-ti-indicator.md
Product: m365-security
GitHub Login: @mjcaparas
Microsoft Alias: macapara

One additional item is that the documentation says "rbacGroupNames" is of type String; however, in the example and through testing the API, it appears this field should be submitted as a list of strings rather than a single string separated by commas.

@MastaDisasta Thank you for your feedback. We have made changes to the document via PR#https://github.com/MicrosoftDocs/microsoft-365-docs/pull/6199
There are other changes that will be made once the author gets more information from the engineering team.
Thanks
Sri

@msbemba Thank you very much for the contribution and updating the documentation with PR. @MastaDisasta Hope this update is helpful for you. Thanks for taking out some time to open the issue. Appreciate and encourage you to do the same in future also.


declaration of 'MKAnnotation' must be imported from module 'MapKit.MKAnnotation' before it is required

Not sure if this is related with the update of cocoapods, but I am since having a problem compiling with kingpin in my project. I get an error in kp_2dtree.h
/kp_2dtree.h:14:29: error: declaration of 'MKAnnotation' must be imported from module 'MapKit.MKAnnotation' before it is required
Has anyone ran into that bug too?

adding the #import <MapKit/MapKit.h> seems to fix the problem, not sure if that is an issue tho. KPGeometry seems to import <MapKit/MKGeometry.h> but that does not import the MKAnnotation protocol.

Yes, something definitely has changed somewhere as we didn't change anything. But indeed the import of MapKit/MKAnnotation was needed in kp_2dtree.h.
I have released new 0.2.4 with this change.
Let me know if it works for you.

Perfect, sorry, should've done the PR, but I wasn't sure if something had changed or not. Tried to backtrack the commits but didn't find anything.
Anyway thanks for the quick PR.


DOC: fix return type docstring for least_squares

Reference issue
fix #12549
What does this implement/fix?
I fixed return type docstring for least_squares based on standard style for returns.
In #12549, removing duplicate  fields to OptimizeResult is suggested.
But, I feel the docstrings have some least_squares specific information.
So I didn't removed these yet.

LGTM, merged. Thanks @AtsushiSakai! And thanks @nmayorov for the review.


feat: use impl IntoBytes instead of generics in certain cases

This PR extends the use of impl IntoBytes from #88 to the rest of the functions within SimpleCacheClient.

Seems like a typo in the title broke CI :(


ARMv7l (RPi Model-B) CFLAGS do not support -m32 flag.

If I was to put this in c_src/config.sh on 32 bit linux:
echo "==========================================="
echo "$CC $CFLAGS -c -o /dev/null $tmpcfile 2>/dev/null"
echo "==========================================="

I would see
=================================
cc -m32 -c -o /dev/null  2>/dev/null
=================================

And it now compiles just fine on RPi on ARMv7l.
https://github.com/vinoski/erlsha2/issues/11

Verified working + updated settings for -m64.

Thanks for the update and for testing the changes. I squashed your commits, updated the version number and docs, and rebased to master.

Nice, thank you!


Texture.set_flag() doesn't work on newly created textures

Godot version:
3.1 Alpha 2
Issue description:
Changing flags of texture after creating it doesn't change anything visually.

The red "blood" is blurred on 2D scale mode.

Steps to reproduce:

create sprite, imagetexture and image.
set flags to mipmaps (which doesn't really do anything)
add sprite as a child
draw couple pixels with set_pixel on image and create imagetexture from image

Minimal reproduction project:
project.zip
This code is used
func _ready():
	var sprite = Sprite.new()
	var texture = ImageTexture.new()
	var img = Image.new()

	texture.set_flags(Texture.FLAG_MIPMAPS)

	add_child(sprite)
	sprite.texture = texture
	sprite.centered = false

	img.create(32,32, true, Image.FORMAT_RGBA8)
	img.lock()
	#img.fill(Color(randf(),randf(),randf(),randf()+0.5))
	#img.fill(Color(0,1,0,1))
	img.set_pixel(5,5,Color(0,1,0))
	img.set_pixel(6,5,Color(0,1,0))
	img.set_pixel(8,5,Color(0,1,0))
	img.set_pixel(9,6,Color(0,1,0))
	img.unlock()
	texture.create_from_image(img)

Don't you mean FLAG_FILTER instead of FLAG_MIPMAPS? Mipmaps are useful when downscaling only.

I want to turn off Filter flag. I don't want the blur. Is there any other reason this would come out blurry?

create_from_image takes two parameters: create_from_image(image, flags=7).
That means it will likely ignore flags set earlier.
Try either texture.create_from_image(img, 0) or moving the set_flags after create_from_image.

I've tried both and couple more combinations but they don't seem to affect the outcome.

Is this in GLES2 or GLES3? And is it reproducible in 3.1?

Can't reproduce it with both GLES2 and GLES3, using texture.create_from_image(img, 0) works fine now.

Thanks, closing as fixed.


How to differentiate Video  and Video Broadcasting

Video Calling property works fine.
I am trying to add Live Video Broadcasting to my react native application ,
right now there are no properties for differentiate Video Call and Live Video Broadcasting
Please Help me!
@Matrixbirds

In Live broadcasting mode, you have two roles params need be passed with setClientRole function,
If you set audience role when u join channel, u just can receive audio or video data, instead the broadcast role allows you both send & receive audio or video data


[refactor] remove antv related packages

Since we have already only focused on Echarts, we'd better remove antv packages and related code from Hypercrx, which can also decrease the size of build folder.

@tyn1998 Hi, Lam! do you have time for this? otherwise, looks like we need to move it to the next milestone.

@tyn1998 Hey, Lam. I would like to work on this issue. Any advice?

Hi, @wxharry, I'm afraid that I cannot provide much information on this issue since I'm not so familiar with the related code. But one thing should not be forgotten, which is to remove all configuration code related to Antv:

You can start handling this as you wish, I'll be always here to help!

I guess I can start with removing the antv dependencies and remove all that miss dependencies hahaha

closed via #462

The size of the packed extension without antv packages has been reduced by 2/3 👍


--clean option

yodoc run --clean

Workaround
ag -l '<!-- This file is generated by yodoc.' | xargs rm # Remove all generated files
yodoc clean


Standard oAuth support

Describe the feature you'd like
A clear description of the feature you'd like implemented in BookStack.
Add Generic Oauth2 provider support.
Describe the benefits this feature would bring to BookStack users
Explain the measurable benefits this feature would achieve.
We can build the a awesome system use one account to login everythings.
Additional context
Add any other context or screenshots about the feature request here.
GENERIC IS AWESOME

Thanks for the suggestion @Ghost-chu.
This had already somewhat been requested in #1157 although it was not fully clear to others outside of that issue. I've now updated that issue title so will close this to keep focus on one issue thread. Give the original post there a "Thumbs-Up" reaction to show support.


load_stac: band order remark

https://github.com/Open-EO/openeo-processes/blob/ad8a2f3551fe9d69c1689e310bf5307e20d86113/proposals/load_stac.json#L4
has this remark:

The bands (and all dimensions that specify nominal dimension labels) are expected to be ordered as specified in the metadata if the bands parameter is set to null.

What does "ordered as specified in the metadata" mean practically?
Also, doesn't this heavily depends on STAC extensions in play (if any)?
For example, take a STAC Item like this (using the eo STAC extension):
{
  "type": "Feature",
  "assets": {
    "B04": {
      "eo:bands": [{"name": "B04"}],
      ...
    "B05": {
      "eo:bands": [{"name": "B05"}],
      ...

I assume the spirit of the remark above is to take band order ["B04", "B05"], but this comes from the "assets" mapping, which technically does not imply an order.

cc @bossie

Yeah, this needs clarification. Assets can indeed be ignored
Proposal:

If cube:dimensions is present, use the order of values for the corresponding dimension if available.
If eo:bands, raster:bands or soon bands is available in Item Properties or Collection Summaries, use the order from the array.
If eo:bands, raster:bands or soon bands is available in assets:
For a single data asset with bands: Use the order from the array.
For multiple assets with bands: Sort the band names (following the sort process).
If nothing is present, assign zero-based indices as band names (as we do in other processes such as apply_dimension) - the user probably has to experiment in this case as the order of the actual bands is not clear.

See also #489 for a related issue.

To be devils advocate: that proposal looks quite complicated (lot of ifs and branches) which on its own is not very user friendly, and it also practically means  that effective band order (and even band names) might suddenly change if the data provider changes/improves their STAC metadata (e.g. add eo:bands under item properties).
I wonder if it wouldn't be better to keep it simpler (including allowing the actual band order and names to be undefined if metadata is missing) and just add a strong recommendation for users to explicitly specify bands argument in load_stac to avoid surprises.

That would be another, more simple option, indeed. The list above only applies if the bands array is not specified anyway.

Makes sense, I overcomplicated it with the STAC metadata. cube:dimensions is required in openEO, so let's simplify it:

If bands is provided in load_collection / load_stac: Use the order as provided by the user.
Otherwise, use the order as provided in the values for the corresponding dimension.

No other cases should occur, but if occurs the order is undefined and it's the fault of the back-end as it didn't provide proper metadata.

Use the order as provided in the values for the corresponding dimension, if available

Based on #491, I guess you mean with "values"  the "values" field from  "cube:dimensions" from the datacube STAC extension?

Fall back to the order in the file format (the bands arrays mirror what is in the file anyway)

I'm not completely sure what you mean with "file" or "the file" in this context, but as I mentioned in #491 I think this might  not be as trivial as is sounds: there might be multiple "files" in play with inconsistent band sets or band order; the "file" aspect of the data to load might be an implementation detail of the data provider and subject to change

dev telco:

band names
band indices (if multiple bands per file)
asset names (if one band per file)


Euro currency

Could be great to change $ by €

No plan for the moment, but welcome to submit PR.

submitted here: #4

@aars
Thank you for the PR.
I will review later


Indicator's second half is hidden in SpeedometerMode.TOP

Hello there, and thank you for this highly customizable library.
I am using the ImageSpeedometer and i am setting the indicator as an image programmatically, the problem is the bottom half of the Indicator doesn't show as demonstrated in the image bellow:

what i am looking for is something like this:

Please advise!!

Have you used speedometerMode = TOP ?
If you did, just add sv_cutPadding="8dp" Attribute, #12
If you didn't, show me your XML code.

Worked like charm, thank u alot Anas!
Tip for others: better to add a [android:padding="8dp"] along with [app:sv_cutPadding="8dp"] to recompense the cutted padding so you wont lose any of the background image.


Any way to set an icon beside the file name/path in tabline

I was wondering if I can set an icon beside the file path on the tabline

like in those fancy buffer plugins:

I'm using a plain always show a tabline:
set showtabline=2

probably I can use this one: https://github.com/romgrk/barbar.nvim.

probably I can use this one: https://github.com/romgrk/barbar.nvim.


Use a central location for the taxonomy and default to PKG if not set

Need to change the build and load steps.

Solved in 0.1.0 - closing


Web/Mobile - Unexpected line between widgets due to color behind them

When widgets touch each other, the color behind them continues to appear as an unexpected line.
Occurs in the mobile and web version.
I created this repository (https://github.com/caduandrade/unexpected_lines_in_flutter) to try it out.
Maybe an error in anti-aliasing or rounding to physical pixel?
Examples:
Column joining widgets
import 'package:flutter/material.dart';

class ColumnCasePage extends StatelessWidget {
  Widget build(BuildContext context) {
    List<Widget> children = [];
    for (int i = 1; i <= 10; i++) {
      children.add(_buildChild(value: i, flex: i * 2));
    }
    return Scaffold(
        appBar: AppBar(title: Text('Column')),
        backgroundColor: Colors.red,
        body: Column(
            children: children,
            crossAxisAlignment: CrossAxisAlignment.stretch));
  }

  Widget _buildChild({required int value, required int flex}) {
    return Expanded(
      child:
          Container(child: Center(child: Text('$value')), color: Colors.white),
      flex: flex,
    );
  }
}

Row joining widgets
import 'package:flutter/material.dart';

class RowCasePage extends StatelessWidget {
  Widget build(BuildContext context) {
    List<Widget> children = [];
    for (int i = 1; i <= 10; i++) {
      children.add(_buildChild(value: i, flex: i * 2));
    }
    return Scaffold(
        appBar: AppBar(title: Text('Row')),
        backgroundColor: Colors.red,
        body: Row(
            children: children,
            crossAxisAlignment: CrossAxisAlignment.stretch));
  }

  Widget _buildChild({required int value, required int flex}) {
    return Expanded(
      child:
          Container(child: Center(child: Text('$value')), color: Colors.white),
      flex: flex,
    );
  }
}

Stack joining widgets
import 'package:flutter/material.dart';

class StackCasePage extends StatelessWidget {
  Widget build(BuildContext context) {
    double left = 0;
    double width = 30;

    List<Widget> children = [];
    for (int i = 1; i <= 10; i++) {
      children.add(_buildChild(value: i, left: left, width: width));
      left += width;
      width += i * 5;
    }
    return Scaffold(
        appBar: AppBar(title: Text('Stack')),
        backgroundColor: Colors.red,
        body: Stack(children: children));
  }

  Widget _buildChild(
      {required int value, required double left, required double width}) {
    return Positioned(
        left: left,
        top: 0,
        bottom: 0,
        child: Container(
            width: width,
            child: Center(child: Text('$value')),
            color: Colors.white));
  }
}

Flutter doctor -v
[✓] Flutter (Channel stable, 2.0.1, on Linux, locale en_US.UTF-8)
    • Flutter version 2.0.1 at /home/cadu/desenv/flutter
    • Framework revision c5a4b4029c (13 days ago), 2021-03-04 09:47:48 -0800
    • Engine revision 40441def69
    • Dart version 2.12.0

[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    • Android SDK at /home/cadu/Android/Sdk
    • Platform android-30, build-tools 30.0.3
    • ANDROID_SDK_ROOT = /home/cadu/Android/Sdk
    • Java binary at: /home/cadu/desenv/android-studio/jre/bin/java
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Android Studio
    • Android Studio at /home/cadu/desenv/android-studio
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • android-studio-dir = /home/cadu/desenv/android-studio
    • Java version OpenJDK Runtime Environment (build 1.8.0_242-release-1644-b3-6222593)

[✓] IntelliJ IDEA Community Edition (version 2020.3)
    • IntelliJ at /home/cadu/desenv/idea-IC-203.6682.168
    • Flutter plugin version 54.0.3
    • Dart plugin version 203.7759

[✓] Connected device (2 available)
    • moto g 9 plus (mobile) •<PHONE_NUMBER> • android-arm64  • Android 10 (API 29)
    • Chrome (web)           • chrome     • web-javascript • Google Chrome 89.0.4389.72

• No issues found!

CustomMultiChildLayout example
import 'package:flutter/material.dart';

class CustomMultiChildLayoutCasePage extends StatelessWidget {
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(title: Text('CustomMultiChildLayout')),
        backgroundColor: Colors.red,
        body: CustomMultiChildLayout(
          delegate: _CustomMultiChildLayoutDelegate(),
          children: [
            _buildChild(id: 1),
            _buildChild(id: 2),
            _buildChild(id: 3),
            _buildChild(id: 4),
          ],
        ));
  }

  Widget _buildChild({required int id}) {
    return LayoutId(
        id: id,
        child:
            Container(child: Center(child: Text('$id')), color: Colors.white));
  }
}

class _CustomMultiChildLayoutDelegate extends MultiChildLayoutDelegate {
  @override
  void performLayout(Size size) {
    double width = 60;
    double dx = 0;
    for (int i = 1; i <= 4; i++) {
      layoutChild(i, BoxConstraints(maxWidth: width, maxHeight: size.height));
      positionChild(i, Offset(dx, 0));
      dx += width;
      width += 30 * i;
    }
  }

  @override
  bool shouldRelayout(_CustomMultiChildLayoutDelegate oldDelegate) {
    return false;
  }
}

This is a duplicate of a set of related issues, one of them is https://github.com/flutter/flutter/issues/65368.
Please refer to https://github.com/flutter/flutter/issues/65368#issuecomment-688764550 for a workaround.
Closing as duplicate.
Thank you

@pedromassangocode
In the example, I already used even widths or heights. Switching to odd continues with the problem. The same is true in all examples.


Click event not firing on slot child component

I thought I'd post this here first in case I was encountering a bug, or if not whether it'd be a quick feature to implement into Vue.js. I can easily move it to the forum if needed.
I'm trying to add a click handler to a child component (using slot), but the method doesn't seem to be firing when the target is clicked (see http://jsbin.com/ficihu/edit?html,js,console,output). I'm sure I've seen other people use a similar thing, but I could be wrong.
Any guidance as to whether this is an issue or not would be awesome. Thanks!

Related to https://github.com/vuejs/vue/issues/2306

Closing in favor of #2306