Provide download links for older versions

File: docker-for-mac/release-notes.md
The changelog should provide links to download older releases.

Not sure the policy on this.

@matthughes thanks for opening this issue. Quoting from here:

We're continuously fixing bugs (including security-related problems), and those fixes are released in new versions of Docker for Mac. We don't support or patch older versions - we only support the latest version on the stable and beta channels respectively.
Because we want users to be running software that's patched and secure, we don't publicly document how to download and install old versions.
If you find bugs in Docker for Mac and Windows (either stable or beta), please run the in-app diagnostics and open an issue so that we can address the problem.

@friism thanks for the clarification, closing this issue for now

That explanation by @matthughes is problematic, since it forces users to accept new software licenses / end user license agreements. Users should have the possibility to download older versions with different EULAs, even if they have security issues.

And docker newer than 1.10 don't run with CentOS 7 OpenVZ...


RHBKAAS-269: changed keycloak version to 22.0.0

Using version 22.0.0 and fixed import in test. Successfully built locally

/lgtm


sass-lint.yml not found.

I'm running version 1.10.2, I have a .sass-lint.yml in the root of my project.  When I run `sass-lint src/theme/button.scss`` I get the following error:
cj at cj-mac in ~/Sync/apps/acd/m on mat!
± sass-lint src/theme/button.scss
fs.js:640
  return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode);
                 ^

Error: ENOENT: no such file or directory, open '/Users/cj/Sync/apps/acd/m/node_modules/sass-lint/lib/config/sass-lint.yml'
    at Error (native)
    at Object.fs.openSync (fs.js:640:18)
    at Object.fs.readFileSync (fs.js:508:33)
    at Object.loadDefaults (/Users/cj/Sync/apps/acd/m/node_modules/sass-lint/lib/config-helpers.js:13:27)
    at module.exports (/Users/cj/Sync/apps/acd/m/node_modules/sass-lint/lib/config.js:80:26)
    at Function.sassLint.getConfig (/Users/cj/Sync/apps/acd/m/node_modules/sass-lint/index.js:31:10)
    at Object.<anonymous> (/Users/cj/Sync/apps/acd/m/node_modules/sass-lint/bin/sass-lint.js:76:15)
    at Module._compile (module.js:570:32)
    at Object.Module._extensions..js (module.js:579:10)
    at Module.load (module.js:487:32)

± nvim --version
NVIM 0.1.7
Build type: RelWithDebInfo
Compilation: /usr/local/Homebrew/Library/Homebrew/shims/super/clang -Wconversion -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=1 -O2 -g -DDISABLE_LOG -Wall -Wextra -pedantic -Wno-unused-parameter -Wstrict-prototypes -std=gnu99 -Wvla -fstack-protector-strong -fdiagnostics-color=auto -DINCLUDE_GENERATED_DECLARATIONS -DHAVE_CONFIG_H -I/tmp/neovim-20161202-25906-1xcct63/neovim-0.1.7/build/config -I/tmp/neovim-20161202-25906-1xcct63/neovim-0.1.7/src -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/include -I/usr/local/opt/gettext/include -I/usr/include -I/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.12.sdk/usr/include -I/tmp/neovim-20161202-25906-1xcct63/neovim-0.1.7/build/src/nvim/auto -I/tmp/neovim-20161202-25906-1xcct63/neovim-0.1.7/build/include
Compiled by<EMAIL_ADDRESS>
Optional features included (+) or not (-): +acl   +iconv    -jemalloc +tui
For differences from Vim, see :help vim-differences

   system vimrc file: "$VIM/sysinit.vim"
  fall-back for $VIM: "/usr/local/Cellar/neovim/0.1.7/share/nvim"

This is the default config file in sass-lint that it can't find for some reason. I'm not sure why you're getting this. Try installing sass-lint again or check in that directory that it mentions to see if the .sass-lint.yml file is missing.

@DanPurdy I'm getting the same message.  The only think I can think of is this was installed with yarn doing yarn add --dev sass-lint.  I've had some issues with some npm packages that need to be installed globally, where doing yarn global add they didn't work quite right and I had to resort to npm install -g.  Maybe it could be something similar....

If you could let us know if that fixes your problem that would be great.

We just switched over from npm to yarn and I had the same problem - yarn doesn't seem to do a full install of sass-lint so /node_modules/sass-lint/lib/config/sass-lint.yml is missing.
Just doing an npm install sass-lint fixes it. (no need to do a install -g)
Is there some extra post install script that puts the sass-lint file in place?
If I then delete sass-lint from node_modules and run yarn add sass-lint I get the same error. Yarn is creating the sass-lint module but inside it there is a lib/config with only an empty directory called property-sort-orders and nothing else.
.. just going to have a look in this repo to see what installs the contents of that folder.

@damonsmith there is no postinstall script, these files are part of the repository and the default install. If Yarn isn't downloading them then all I can think is that there's a bug in yarn. I would maybe post an issue there?

yes I see they're just sitting there straight in the repo. Definitely a yarn issue, just wondering what exactly. It turns out I'm the only one on my team that has the problem. We all have macOS, same node version setup with nvm, we all deleted node_modules and ran yarn again and only I got the problem.
Totally strange that it's me and it happens to be this package that I get it with too. I suspect yarn is doing some sort of performance optimization of the files it thinks it needs to download but I'll raise it with them and read up on getting some more verbose logging of yarn when it runs.

Had you done a Yarn clean? Wondering if that has wiped the files out? Maybe delete the yarn.lock and yarn clean files and try again?

Ah ok thanks, I'll give that a try tomorrow. Funny thing is we just converted to yarn and it happened on the very first run of yarn on my system. I was off for a day though when we converted to yarn, maybe everyone else just sacrificed the right goats while I was away.
Also I'll raise a ticket with yarn for it.

Yes running a yarn cache clean and then yarn fixed the problem.
Before it fixed the problem though, I checked the cached version in ~/Library/Caches/Yarn/npm-sass-lint-1.10.2- and it did have all the files.
Running yarn in verbose lists all the files that it copies from the cache folder and it lists each one that it copied but it didn't copy the sass-lint.yml file and the logs don't explain why either. Strange.

I had a similar issue. .yarnclean adds *.yml and therefore it will be removed without any notice at package install /  #upgrade.
#2259

We can think about it for the future but we're not gonna change sasslint right now purely because yarn chooses to do that. I guess once we add json config's we can move it over but i just don't have the time right now. Until then it remains an issue with yarn..


Use DeliveryGuarantee enum as sink configuration

Problem description
Flink has already provided a enum DeliveryGuarantee to describe the delivery guarantee that our sink uses. We should leverage it instead of the current PravegaWriterMode enum.
Problem location
PravegaWriterMode, Sink
Suggestions for an improvement

For this task, we need to mark the writer mode API deprecated, and keep its compatibility for this release for now. We will consider removing the writer mode in the next one or two releases.

As the new Sink API is still marked experimental, we decide not changing the old Sink API to keep the compatibility, and directly change to use the DeliveryGuarantee in the new Sink API.


[v1.13] backport for DSR handling in from/to-netdev

This brings a whole bunch of PRs into v1.13 to fix the DSR support for backends in hostNetwork, or with L7 policy (https://github.com/cilium/cilium/issues/21955#issue-1431588454).

[ ] #23326
[ ] #23718
[ ] #22936
[ ] #22978
[ ] #24524
[ ] #24794

Once this PR is merged, you can update the PR labels via:
for pr in 23326 23718 22936 22978 24524 24794; do contrib/backporting/set-labels.py $pr done 1.13; done

or with
make add-labels BRANCH=v1.13 ISSUES=23326,23718,22936,22978,24524,24794

/test-backport-1.13

/test-backport-1.13

build-commits timed out, but is :heavy_check_mark: locally.

/test-1.16-4.19

/test-1.17-4.19

/test-1.18-4.19

test-1.19-4.19

test-1.20-4.19

/test-1.19-4.19

/test-1.20-4.19

/test-1.21-4.19

/test-1.24-4.19

Tested locally that backend with L7 policy now works in combo with https://github.com/cilium/cilium/pull/24807.


Resolve #751/#773

Description
Adds new clearItems method that can be called when using setChoices by passing the replaceChoices argument. Fixes #751 and #773.
Screenshots (if appropriate)
Types of changes

[ ] Chore (tooling change or documentation change)
[ ] Refactor (non-breaking change which maintains existing functionality)
[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist

[x] My code follows the code style of this project.
[x] My change requires a change to the documentation.
[x] I have updated the documentation accordingly.

Does this PR will born ?

Issue still open and bug still existing?

PLEASE PLEASE, we need this

clearChoices still doesn't work.
<button name="button" type="button" class="btn btn-secondary" data-action="click->check#clean"><i class="bi bi-eraser"></i> </button>

function clean(event) {
  let el = event.target.closest('form').querySelector('.form-select')
  let finded_choice_select = new Choices(el)
  finded_choice_select.clearChoices()
}

https://github.com/Choices-js/Choices/pull/1166 implements different logic around how items/choices so it should resolve this


Unmapped classes get mapped to hashed in the named publication

If a class has has no mappings, a hashed mapping gets marked as a named mapping in the intermediary-v2 publication.
For example, the hashed names here are part of the named namespace:
c    net/minecraft/class_459$class_460$1    net/minecraft/unmapped/C_aarntxpx$C_mxrdfjwd$C_hvkwffju
    f    Lnet/minecraft/class_459$class_460;    field_33831    f_xluscmud

This prevents layering mappings on top of QM.

Relevant screenshots
QM source:
Decompiled Minecraft source where Mojmap is layered on QM to fill in unmapped names:

mapNamedJar may be the culprit.


Cherry-pick #55 into release/2.0 branch

Signed-off-by: Niladri Halder<EMAIL_ADDRESS>

bors try

bors merge

bors merge


Failure to detect high resolution QRCode symbol

Hi,
I tested ZXing-cpp (built from commit ff2da27ffa80bd4fcfb31f2deded36523d298736) on some images and noticed that it could not detect some clear QR codes.
In the below examples, red boxes denote QR code ground truths and blue boxes denote ZXing-cpp decoding results.

However, this image is detected correctly:

What could be the reason for the different behaviour? Is it because ZXing-cpp does not detect large QR codes?

Original images for reproducing the results:
images.zip

Hi @axxel , do you think it would be useful to change the binarizer? I saw three of them (Threshold, GlobalHistogram, Hybrid).
Or maybe I should try reducing the image size by half (each edge) until the shorter edge is less than, say 100 pixels?

Changing the binarizer might help in a particular situation. If your input is consistently well 'lit' it might do the trick for you. In general, the multi-resolution approach will be more reliable. I made some progress on an internal solution but am still not done. Reducing the size and trying again is basically the idea. A meaningful threshold is probably closer to 1000 pixels than to 100.

A meaningful threshold is probably closer to 1000 pixels than to 100.

How is this calculated? Is it like, edge_size / num_modules < 8? So if we have 21 modules (QR version 1), then the edge size is about 8*21=168, right?

Your calculation makes sense from a theoretical point of few but it would be pretty construed to get exactly this input. My number was merely based on a few real world samples. That said, I like your idea of deriving a threshold instead of just guessing it. The potential downside would be a performance pessimization. If you want to come up with such a constructed example that just fails, we could certainly make use of it in the test samples.

Hi @axxel , I tried to downscale the image and call ZXing multiple times. It does help find more barcodes.
But now I have a problem: how to de-duplicate the results from different resolutions? This is easy for QR codes due to their square shape. For 1D barcodes, I got different recognition results that do not overlap with each other.

I'm working on this stuff at the moment (obviously have to solve the same problem). So maybe the best course of action for you at the moment is to wait a 'little longer' until I commit my solution as part of the library. It is a bit more complicated than I anticipated because I feel the need to improve the false-positive detection, so downsampled 1D codes don't get misread.
If you are in a hurry, see the code starting here.

Sounds great!
Some questions:

When I was downscaling the images, I was using OpenCV to resize them. But ZXing does not use external dependencies like OpenCV, so how are you down sampling the images?
Instead of resizing the input images, is it possible to re-run binarizer with larger windows and get similar effect? (like 16x16)
Can you make this auto-scaling feature optional? For performance reasons people might want to run ZXing without downscaling multiple times.

1. When I was downscaling the images, I was using OpenCV to resize them. But ZXing does not use external dependencies like OpenCV, so how are you down sampling the images?

With a trivial 3x3 boxing filter. See commit above.

2. Instead of resizing the input images, is it possible to re-run binarizer with larger windows and get similar effect? (like 16x16)

That could work but would be more expensive and not be a general solution, i.e. different processing steps would still be required, I believe.

3. Can you make this auto-scaling feature optional? For performance reasons people might want to run ZXing without downscaling multiple times.

Most certainly. The default is off for the time being. See above commit.
I'd be happy get feedback from you as a beta-tester of this new code. I'd be curious to know if you find samples where it still fails and also to know which threshold values you found to be working for your samples.

Tested on https://boofcv.org/notwiki/regression/fiducial/qrcodes_v3.zip ("detection" part)
ZXing 53ded527ce0cfc88882b91a0a46fd189bc0d3d1b
468 recognized, 764 missed, 4 inserted (recognition result not present in ground truth because the dataset only labels QR codes)
ZXing 53ded527ce0cfc88882b91a0a46fd189bc0d3d1b with OpenCV downscaling
631 recognized, 601 missed, 9 inserted
ZXing 11fc1d88
466 recognized, 766 missed, 3 inserted
ZXing 11fc1d88 with OpenCV downscaling
630 recognized, 602 missed, 8 inserted
ZXing 1e39cbe0505dd3ae25836a123a0498ea90a850d1 set MultiResolutionThreshold to 150
598 recognized, 634 missed, 105 inserted
Filed another issue #314 for the regression between 53ded527ce0cfc88882b91a0a46fd189bc0d3d1b and 11fc1d88.
So two issues:

This built-in scaling feature recognizes fewer barcodes compared to external OpenCV downscaling. (598 vs ~630)
Many duplicate barcodes in the result.

When I downscale the images with OpenCV, I dedup the results with a simple rule:
If the centroid of a result from low-res is included in a barcode result from high-res layers, remove the result from low-res.
I calculated the centroid with the formula described here ("of a polygon").

Thanks for the feedback, much appreciated. There was a bug regarding the de-duplication, I took an approach similar to yours to fix it.
The main difference between your and my downscaling is likely the factor. If you have the time, could you please change the value N to 2 in https://github.com/nu-book/zxing-cpp/blob/31d547989577d9f29cd4ea8a1f6dc29279cb0ed9/core/src/ReadBarcode.cpp#L59 and see how that changes your statistics?
I'm working with your test data set now to see where I have ideas to further increase the detection rate.

With the latest changes, all 40 samples from the 'close' subdirectory work now with ZXingReader. Anything else of that sample set of particular interest to you?

@axxel  The latest HEAD commit looks pretty good! Even better when I set N=2

| Blurred | Bright Spots | Brightness | Close | Curved | Damaged | Glare | High Version | Lots | Monitor | Nominal | Non-compliant | Pathological | Perspective | Rotations | Shadows | Sum
-- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | -- | --
ZXing e448c0fd | 24 | 23 | 59 | 6 | 29 | 9 | 12 | 2 | 79 | 0 | 51 | 9 | 7 | 24 | 122 | 17 | 473
  | 36.92% | 23.71% | 69.41% | 15.00% | 48.33% | 20.93% | 22.64% | 5.41% | 18.81% | 0.00% | 65.38% | 34.62% | 30.43% | 68.57% | 91.73% | 85.00% |
ZXing e448c0fd multiRes | 32 | 38 | 64 | 40 | 30 | 14 | 18 | 2 | 118 | 17 | 64 | 20 | 9 | 24 | 123 | 17 | 630
  | 49.23% | 39.18% | 75.29% | 100.00% | 50.00% | 32.56% | 33.96% | 5.41% | 28.10% | 100.00% | 82.05% | 76.92% | 39.13% | 68.57% | 92.48% | 85.00% |
ZXing e448c0fd multiRes N=2 | 35 | 40 | 63 | 40 | 32 | 15 | 18 | 2 | 150 | 17 | 64 | 21 | 9 | 24 | 126 | 18 | 674
  | 53.85% | 41.24% | 74.12% | 100.00% | 53.33% | 34.88% | 33.96% | 5.41% | 35.71% | 100.00% | 82.05% | 80.77% | 39.13% | 68.57% | 94.74% | 90.00% |
ZXing e448c0fd OpenCV downscaling | 35 | 40 | 64 | 40 | 32 | 15 | 18 | 2 | 150 | 17 | 64 | 21 | 7 | 24 | 126 | 18 | 673
  | 53.85% | 41.24% | 75.29% | 100.00% | 53.33% | 34.88% | 33.96% | 5.41% | 35.71% | 100.00% | 82.05% | 80.77% | 30.43% | 68.57% | 94.74% | 90.00% |

I'll do a performance evaluation later.

With the latest changes, all 40 samples from the 'close' subdirectory work now with ZXingReader. Anything else of that sample set of particular interest to you?

Would be nice to see improvements on noisy scenarios (not artificially noisy, but close to real life), namely these categories: blurred, damaged, glare, and nominal.

Thanks a lot for your help. I'd be interested in this performance comparison. This might affect my opinion about where/if this multi-resolution option should in fact be enabled by default. My current gut-feeling says:

disable it on the ReadBarcode API, thereby not pessimizing performance in existing use-cases, especially on mobile apps
enable it on the new ReadBarcodes API
enable it in both APIs in the python wrapper

In general, I'm convinced that the library should (mostly) maximize the detection rate in it's default setting and allow to speed up the processing by limiting the search space (see options like tryRotate, etc.).
Any feedback regarding this default behavior is very welcome from all interested parties.

Tested on 45cf13287d08b99d6c544643f4059e8da9a3e97f
Compiler: g++ 10.3.0
Ubuntu 20.04; Intel(R) Xeon(R) Platinum 8272CL CPU @ 2.60GHz
Dataset: https://boofcv.org/notwiki/regression/fiducial/qrcodes_v3.zip ("detection" part)
Timer was set around ZXing::ReadBarcodes, including the cost of constructing ZXing::ImageView and ZXing::DecodeHints.
The time of cv::imread was excluded.
Each image was recognized 3 times and we calculated the average recognition time.
Average time (in milliseconds)

Threshold
N=2
N=3

150
55.5462
46.5684

500
54.6101
45.8529

1000
51.4354
45.3214

65535
36.3271
36.5701

Max time (on the slowest image):

Threshold
N=2
N=3

150
325.5244
243.776

500
321.6267
242.5706

1000
316.1955
240.9633

65535
159.9721
155.672

Plot latency against image area (height times width):
N=3

N=2

Compare N=2 & N=3

Thanks a lot for your help. I'd be interested in this performance comparison. This might affect my opinion about where/if this multi-resolution option should in fact be enabled by default. My current gut-feeling says:

disable it on the ReadBarcode API, thereby not pessimizing performance in existing use-cases, especially on mobile apps
enable it on the new ReadBarcodes API
enable it in both APIs in the python wrapper

In general, I'm convinced that the library should (mostly) maximize the detection rate in it's default setting and allow to speed up the processing by limiting the search space (see options like tryRotate, etc.).
Any feedback regarding this default behavior is very welcome from all interested parties.

@axxel  Is it possible to expose this N as a parameter as well? I might want to use N=2.

Thanks a lot for your thorough performance analysis. What I take from it is the following:

the downscale approach is expensive -> it needs to be possible to disable it
the factor of 2 is significantly more expensive than 3, while adding very few additional detections
I tested all those sample images and found none where a threshold of <500 helps but at least one where 600 was too large

=> 3 and 500 are reasonable default values. They might change in the future.
I believe this issue can be considered fixed or do you have anything else to discuss here?


SSM update - compare vs overwrite

I would like to update the "update" function. Have it compare each .ps1 with github raw and only overwrite what is needed.

done


LTR390 incorrect readings when too much light

Hi,
Today I received my LTR390 sensor. I bought a Waveshare LTR390 from Aliexpress (https://www.waveshare.com/uv-sensor-c.htm)
I have noticed that it can only read 5000lux at maximum. When that level is passed, it shows incorrect values like 400lux or 858987712lux.
I am using example from this library.
Does anyone experienced similar issue?
Example reading when shining a flashlight on a sensor. It should give ~10k lux reading:
UV Index: 0.01
Ambient Light Lux: 6221.00
UV Index: 0.01
Ambient Light Lux: 5885.20
UV Index: 0.01
Ambient Light Lux: 5989.40
UV Index: 0.01
Ambient Light Lux: 6245.00
UV Index: 0.01
Ambient Light Lux: 6510.60
UV Index: 0.01
Ambient Light Lux: 858988544.00
UV Index: 0.01
Ambient Light Lux: 858989120.00
UV Index: 0.02
Ambient Light Lux: 858989248.00
UV Index: 0.02
Ambient Light Lux: 858989376.00
UV Index: 0.02
Ambient Light Lux: 858989888.00
UV Index: 0.02

@szerwi
Hi,
Try to change GAIN and RESOLUTION.
As soon as I can carry out these experiments, I can say what the problem

Yesterday I have noticed that raw ALS value can reach only  65535, even though it should be 20 bit.
I have also changed gain and resolution setting, but it didn't seem to help.
Today or tomorrow I will test the sensor more and try to find an issue.

@szerwi
What mcu do you use?
I remember that I was tested library on Adafruit Sensor and it seems there were no such problems with high intensity lighting
raw ALS is uint32_t, but if you have 65535 as maximum value - it can be uint16_t. Maybe there is problem with I2C connection or with sensor.

I use Arduino Nano. I will try the sensor with ESP32.

@szerwi Arduino Nano should be ok. I've tested it with atmega328, esp32 and stm32f4 series. I know that there are some problems with raspberry pico, but I don't have this mcu.
Will recheck this issue on the next week and inform you.

@levkovigor thank you for the fix!
By the way, is the formula to count UV index correct in your library? I have just found out that the datasheet shows different formula:

The UV Sensitivity parameter is also different in the datasheet than in your library:

@szerwi
Yes, it's correct according to the latest datasheet (v.1.4) (you can find it in library files)

@levkovigor I have one more question regarding LTR390.
I am testing the sensor outside and I've noticed that when I put plastic dome over it, the UVI drastically decreases. Without the dome, the sensor shows around 1.0UVI and after I put the dome above it, it drops to 0 - 0.1UVI.
I am using exactly the same dome with VEML6075 sensor and it works much better than the LTR390 - the UVI in VEML6075 doesn't drop by that much.
Do you have any tested way to cover the sensor and secure it from the rain?
Which sensor do you think is the best to measure outdoors UVI?
VEML6075 works pretty good, but it is announced as EOL and that is why I'm looking for alternatives.

@szerwi

You can change WFAC in LTR390.h
Most materials (except quartz glass) do not transmit UV radiation well. If the measurements do not differ much when covered with plastic, then the sensor does not measure UV radiation directly, but gives a value calculated from visible light, which is not always accurate.
Quartz glasses are sold, but keep in mind that quartz is very fragile.

When there are clouds on the sky, the UVI measurement drops to 0 in most cases, so changing WFAC won't help in my case :/
However, I have noticed that LTR390 works completly different on smaller gains.
With gain set to 18 and resolution 20 I get following results:
UVI without dome: 0.24
UVI with dome: 0.02
So the dome makes it 10x lower.
With gain set to 9 and resolution 20:
UVI without dome: 0.4
UVI with dome: 0.2
So the dome makes it only 2x lower.
When gain is set to 6, I get similar results to gain 9. Reading is a bit higher than with gain 9, but the dome also makes it around 2-times lower.
All the test were made at the same time. Actual UVI (based on the readings from professional weather stations in my area) was around 0.2.
It seems that without the dome the sensor measures correctly with gain set to 18, but to compensate for the dome I need to change the gain setting.

@levkovigor Today I have done more tests on LTR390.
Strangely, the UV reading suddenly stopped working on GAIN set to 18. It shows 0.00, even though the real UV index outside is around 2.0.
On GAIN 9 and resolution 20, it also works strange. It fluctuates from 0.00 to 2.00.
Gain 6 and resolution 16 seems to work the best. It shows around 4.5 (which is too high), but when I cover it with white dome, it drops to 1.7, which is correct reading.
Have you even encountered similar issue with this sensor?


Fix incompatibility with strict/safe CSP

https://github.com/d3/d3-fetch/blob/master/src/dsv.js use csvParse and tsvParse from "d3-dsv"
As explained in https://github.com/d3/d3-dsv/issues/65 by @mbostock :

I recommend using parseRows as suggested in the text you pasted from the README and a row function to turn the array of field values into an object.

Using  csvParse or tsvParse make it incompatible with CSP without unsafe-eval.
It impact for example plotly/plotly.js#897 (which use the old version of d3 "3.5.17" so "d3-request" and not this package, but "d3-request" has the exact same problem. I didn't opened an issue there as its status is "This module is deprecated as of D3 5.0; please use d3-fetch instead.")
Or is there another API from this package that can be used to avoid that problem?

Use d3.text or use fetch directly.
d3.csvParseRows(await d3.text("path/to/file.csv"))

fetch("path/to/file.csv")
  .then(response => response.text())
  .then(text => d3.csvParseRows(text))


iOS Flutter 2.8 got crash because of EXC_BAD_ACCESS KERN_INVALID_ADDRESS

Should be fixed in https://github.com/flutter/engine/pull/28495 which should be in 2.10.1
Originally posted by @chunhtai in https://github.com/flutter/flutter/issues/96850#issuecomment-1020389065

[https://github.com/flutter/engine/pull/28495/files/549d44100ca393cf434831c1d23b84f874ca7955]these commits have been merged in flutter 2.8

but this crash[https://github.com/flutter/flutter/issues/96850] is also exist.
stack belows:
flutter::AccessibilityBridge::GetOrCreateObject(int, std::__1::unordered_map<int, flutter::SemanticsNode, std::__1::hash, std::__1::equal_to, std::__1::allocator<std::__1::pair<int const, flutter::SemanticsNode> > >&) (in Flutter) (accessibility_bridge.mm:303)
flutter::PlatformViewIOS::UpdateSemantics(std::__1::unordered_map<int, flutter::SemanticsNode, std::__1::hash, std::__1::equal_to, std::__1::allocator<std::__1::pair<int const, flutter::SemanticsNode> > >, std::__1::unordered_map<int, flutter::CustomAccessibilityAction, std::__1::hash, std::__1::equal_to, std::__1::allocator<std::__1::pair<int const, flutter::CustomAccessibilityAction> > >) (in Flutter) (platform_view_ios.mm:191)
std::__1::__function::__func<flutter::Shell::OnEngineUpdateSemantics(std::__1::unordered_map<int, flutter::SemanticsNode, std::__1::hash, std::__1::equal_to, std::__1::allocator<std::__1::pair<int const, flutter::SemanticsNode> > >, std::__1::unordered_map<int, flutter::CustomAccessibilityAction, std::__1::hash, std::__1::equal_to, std::__1::allocator<std::__1::pair<int const, flutter::CustomAccessibilityAction> > >)::$_38, std::__1::allocator<flutter::Shell::OnEngineUpdateSemantics(std::__1::unordered_map<int, flutter::SemanticsNode, std::__1::hash, std::__1::equal_to, std::__1::allocator<std::__1::pair<int const, flutter::SemanticsNode> > >, std::__1::unordered_map<int, flutter::CustomAccessibilityAction, std::__1::hash, std::__1::equal_to, std::__1::allocator<std::__1::pair<int const, flutter::CustomAccessibilityAction> > >)::$_38>, void ()>::operator()() (in Flutter) (functional:1720)
fml::MessageLoopImpl::FlushTasks(fml::FlushType) (in Flutter) (message_loop_impl.cc:132)
fml::MessageLoopDarwin::OnTimerFire(__CFRunLoopTimer*, fml::MessageLoopDarwin*) (in Flutter) (message_loop_darwin.mm:81)

Looking at stacktrace, it looks similar to https://github.com/flutter/flutter/issues/101488, and based on this issue comment, I'll close this as duplicate.
Please follow-up in it for further updates. If you disagree, write in comments and I'll reopen it.

Looking at stacktrace, it looks similar to #101488, and based on this issue comment, I'll close this as duplicate. Please follow-up in it for further updates. If you disagree, write in comments and I'll reopen it.

ok
we will track the case  https://github.com/flutter/flutter/issues/101488,


JBPM-4942 - Remove duplicated variable selectedProcess

Could someone review this one? @nmirasch, @Salaboy

+1


Create code hygiene standards in contributions.md

Document our style standards, such as:

No panics
No todos, unimplemented, etc
No unwraps, even if they shouldn't ever be able to fail
No expect statements

We don't seem to have contributions.md, but we have WORKFLOW.md with GitHub best practices. We could probably combine the new file with this existing one.


fix tf_flowers dataset link

link seemed to be broken, so adjusted it to https://www.tensorflow.org/datasets/catalog/tf_flowers

@googlebot I signed it!


Add 'sideEffects' to allow webpack's advanced tree snaking

https://webpack.js.org/guides/tree-shaking/
https://github.com/webpack/webpack/tree/0b13cf19a19fd64d176c77aecbbf00ec57966276/examples/side-effects

This change is

bors r+


1 internal server error for register and login

The code fix for internal server error

no issue with merge


Showcase contribution carlynorama 20230201 NoC 5.6 Scalar Projections

Thanks for all the fabulous content. This topic was a little bit lonely so here's a contribution!

Yay! Love seeing this!!


kargs: Introduce usage of fs_utf8

This avoids annoyances with constantly checking for utf-8.

I'm going to redo this on top of https://github.com/coreos/cap-std-ext/pull/53 once it's released

I'm going to redo this on top of https://github.com/coreos/cap-std-ext/pull/53 once it's released

Done :heavy_check_mark:


Application-scoped Argo CD doesn't work when managed through Cluster-scoped Argo CD

Describe the bug
When managing a secondary application-scoped ArgoCD instance through a primary ArgoCD instance, the namespace role bindings that the secondary application-scoped ArgoCD instance creates will get deleted by the primary ArgoCD instance.
To Reproduce
Steps to reproduce the behavior:

Create a cluster-scoped ArgoCD instance
Create a application-scoped ArgoCD instance
Label a namespace with argocd.argoproj.io/managed-by=application-argocd
Role bindings in the new namespace will get deleted by the cluster-scoped ArgoCD

This is because the application scoped ArgoCD instance will get deployed with a label that matches the cluster-scoped ArgoCD Application name
  labels:
    app.kubernetes.io/instance: <Cluster scoped Application name for deploying application scoped ArgoCD instance>

When you then annotate a namespace with argocd.argoproj.io/managed-by=application-argocd, the rolebindings that get created will inherit the app.kubernetes.io/instance label on the application-scoped ArgoCD instance.
This causes the cluster-scoped ArgoCD to pick them  up and delete then because ArgoCD picks up instance labels.
https://argoproj.github.io/argo-cd/faq/#why-is-my-app-out-of-sync-even-after-syncing
https://github.com/argoproj/argo-cd/issues/1482
Expected behavior
The ability to manage a secondary argocd instance from a primary argocd instance without conflict.

Thanks @nccurry for reaching out. @shubhamagarwal19 I think we are fixing this issue in v1.3 right ?

@iam-veeramalla, yes! This is planned to go in v1.3 release!

@shubhamagarwal19 @iam-veeramalla How does the fix work?

@nccurry The fix is that we don't set the labels from the owning ArgoCD CR anymore on the resources we create.

This is the fix in the upstream operator: https://github.com/argoproj-labs/argocd-operator/pull/414

Fixed in latest - v1.3.0 and above


adding slides

adding workshop slides

@dalbhanj can you resolve the conflicts

resolving for now. will create new PR after resolving conflicts


Update Trakt dependency from trakt==3.4.0 to pytrakt~=3.4.30

Resolve issue #42

Upon doing this, you might get
[  ERROR] :: Got unknown error 'TVSeason' object has no attribute 'number', while processing
which can easily be fixed by changing seasons[0].number to seasons[0].season
https://github.com/lukearran/TvTimeToTrakt/blob/26cd599e4574f538818197deb109df985285a476/searcher.py#L123

Upon doing this, you might get
[  ERROR] :: Got unknown error 'TVSeason' object has no attribute 'number', while processing
which can easily be fixed by changing seasons[0].number to seasons[0].season
https://github.com/lukearran/TvTimeToTrakt/blob/26cd599e4574f538818197deb109df985285a476/searcher.py#L123

Well spotted @seaque! I'll update the script consequently.


Log nonce

The branch resolves issue https://github.com/hyperledger-labs/perun-eth-backend/issues/41

Issue #41 fixed by #43.


config=None, tool=None --> can this be removed?

59 matches across 25 files

I think, __init__s with parameters config=None, tool=None are confusing. Although explicit is better than implicit, what does an explicit "parameter=None` tell me as a reader? Well, to me it says:

For this parameter we use some kind of default.

Which is an implicit information, no? When reading this, I always have to hold and think what this means. So I was wondering if we could remove this.

Yes.


Watched Array Item is Empty - but only under WATCH

VSCode Version: 1.33.1 user
OS Version: Windows 10
Debugging PowerShell: an array value is shown as an empty string on the left but it's plainly not empty on hover or under locals:

No, I disabled all extensions except the PowerShell extension required for debugging, restarted, and the problem still occurs.

Please file this issue against the PowerShell extension.


--no-build-isolation has no effect in uv add

The following works.
uv add torch
uv pip install --no-build-isolation "git+https://github.com/facebookresearch/pytorch3d.git"

While the following does not work. It seems like --no-build-isolation has no effect for the add subcommand.
uv add torch
uv add --no-build-isolation "git+https://github.com/facebookresearch/pytorch3d.git"

Here is the complete log:
➜ uv --version
uv 0.3.0 (Homebrew 2024-08-20)

➜ uv add torch
Resolved 33 packages in 511ms
   Built test @ file:///private/tmp/test
Prepared 1 package in 198ms
Installed 1 package in 0.71ms
 + test==0.1.0 (from file:///private/tmp/test)

➜ uv add --no-build-isolation "git+https://github.com/facebookresearch/pytorch3d.git"
 Updated https://github.com/facebookresearch/pytorch3d.git (05cbea1)
error: Build backend failed to determine extra requires with `build_wheel()` with exit status: 1
--- stdout:

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

Gah sorry, this is just an oversight.


Create an Identity Step 2 - Identity ObjectId not returning correctly

Step 2 under Create an Identity
objectId=$(az ad sp show --id $appId --query "objectId" -o tsv)
is not returning the objectId.
Upon inspection, the az ad show command is not returning the objectId in the id object.
Using az cli version 2.43.0 in Cloud Shell.
Because of this, the rest of the deployment fails to complete.

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

ID: 95812617-2cee-fb2c-2c6d-573f222033be
Version Independent ID: bf51864f-646f-2fda-7842-b1f3cf2f9ce2
Content: Creating an ingress controller with a new Application Gateway
Content Source: articles/application-gateway/ingress-controller-install-new.md
Service: application-gateway
GitHub Login: @greg-lindsay
Microsoft Alias: greglin

@timothymeyers
Thanks for your feedback! We will investigate and update as appropriate.

@timothymeyers
Thank you for your feedback and making the PR! We have assigned this issue to the author to review the PR. Thank you!


fix #1327

Hmm: does this actually require a schema change, in case we persisted klines with trailing whitespace?


Add gui-knobs to control and eventually persist lighting, environment

Replicate the floating gui menu in OpenSim gui to control background, floor, lighting and additional options, make persistent allow choice of preset environments

This has been addressed by https://github.com/opensim-org/opensim-viewer/pull/176 except for the save/restore function


Status bar color

Hi, I just added support to status bar color on my local project.
Only 3 lines of code on Android, but it needs an update on JSON file too.
How can I help you to release officially?

Are you trying to set a different color for the status bar compared to the toolbar? or are they the same color?
The reason I ask is because maybe it's a better idea to just make the statusbar color match the toolbar color, assuming that that's what most people would want.

It's a different color. Cause in Material Design guidelines, status bar has a darker color from toolbar
I added this on JasonViewActivity.java in setup_header function
 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {                 String statusColor = header.getJSONObject("style").getString("status");                 getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);                 getWindow().setStatusBarColor(JasonHelper.parse_color(statusColor));             }
As you can see, I added "status" also on JSON file structure

Hello @gliechtenstein.
I think it's a good idea to let user customize status bar color, it's just a single string.
Do we do it ?

@realitix iOS provides only two options (.default and .lightcontent) https://developer.apple.com/documentation/uikit/uistatusbarstyle?language=objc
Basically, there are two modes on iOS:

UIStatusBarStyleLightContent: white text with transparent background
UIStatusBarStyleDefault: black text with transparent background

For now we are trying to keep the JSON markup as cross-platform as possible, so one idea I have is do something similar for Android instead of manual color setting. Any better ideas?

Tricky to keep it x-platform. Perhaps allow any colour on android and on iOS ignore if not 000 or fff ?

If you want to keep the JSON markup as cross-platform as possible, the only way is to use material color 700 for the status bar only when the toolbar color is a 500 color
https://material.io/guidelines/style/color.html

@danieleorlando sorry I don't follow what you mean about the colours?

@maks
Material design specs:
"A primary color is the color displayed most frequently across your app’s screens and components. It can also be used to accent elements, if you don’t have a secondary color.
To create contrast between elements, you can use lighter or darker tones of your primary color. The contrast between lighter and darker tones helps show division between surfaces, such as between the status bar and a toolbar."
So, primary color (toolbar) is the one on JSON.
If this color is in Material Design Palette (#500), we pick the darker version (#700) and set to status bar.


Question about api

Api has limits and is completely free?

Api has limits and is completely free?

@CodeVisionEvgen, BBC News API, is completely free to use and has no rate limits!


us-va-*

{
    "coverage": {
        "country": "us",
        "state": "va",
        "county": "Frederick"
    },
    "data": "http://gis2.co.frederick.va.us/Freeance/Client/PublicAccess1/index.html?appconfig=FCMap",
    "website": "http://www.co.frederick.va.us/departments/f-n/geographic-information-systems/frederick-county-gis",
    "type": "http"
}

{
    "coverage": {
        "country": "us",
        "state": "va",
        "county": "Greenville"
    },
    "data": "http://greensville.mapsdirect.net/default.aspx",
    "type": "http",
    "website": "http://www.greensvillecountyva.gov/index.php/departments/geographic-information-systems",
    "note": "WorldVIEW Solutions"
}

{
    "coverage": {
        "country": "us",
        "state": "va",
        "county": "Montgomery"
    },
    "data": "http://www.ovela.us/montvaigis",
    "type": "http",
    "website": "http://www.montgomerycountyva.gov/content/1146/98/147/2482.aspx"
}

{
    "coverage": {
        "country": "us",
        "state": "va",
        "county": "Powhatan"
    },
    "data": "http://powhatanmaps.org/mapviewer/",
    "website": "http://www.powhatanva.gov/index.asp?Type=B_BASIC&SEC={65357DB3-1800-46C6-9EDC-0912870EF392}",
    "type": "http"
}

@jalbertbowden The data is definitely in raster form but I can't find any download link to process the raw data. Probably worth contacted them.

Closing as stale - we have a statewide layer.


Add CI Testing

Ticket:
Islandora-CLAW/CLAW#794
Found a minor issue in the role while testing. We were assuming that become: yes would be set for the role, so that we could become the Karaf user. That isn't necessarily true (and wasn't true in testing), so I corrected that so the tests would pass.

Cent testing is disabled. It should be enabled once https://github.com/Islandora-Devops/ansible-role-karaf/pull/1 is merged.

Enabled testing for centos.


Create a Bridge namespace, move Symfony and standalone integration in there

Also make most of Symfony dependencies optional in composer.json file.

See #152


#587:  check for git installation

Closes #587 .
Added the isGitInstalled Method to GitContextImpl, that calls the findBash method of AbstractIdeContext and throws an IllegalstateException if there is no bash path found.
Used the newly added method at the start of every method that performs an action for which git is required.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>6
Details

0 of 0   changed or added relevant lines in 0 files are covered.
4 unchanged lines in 1 file lost coverage.
Overall coverage increased (+0.001%) to 67.283%

Files with Coverage Reduction
New Missed Lines
%

com/devonfw/tools/ide/context/GitContextImpl.java
4
52.97%

Totals

Change from base Build<PHONE_NUMBER>8:
0.001%

Covered Lines:
6410

Relevant Lines:
9185

💛  - Coveralls

For the record: Throws InvalidArgumentException instead of CliException and therefore printing a stacktrace with link to create github issue what is undesired. We need to create a new story and PR changing the exception type. Everything else works fine.


IbisDoc uri

Reporter
Ricardo
Is your feature request related to a problem? Please describe.
When browsing the IbisDoc at https://ibis4example.ibissource.org/iaf/ibisdoc/, I always stay on https://ibis4example.ibissource.org/iaf/ibisdoc/, no matter which object I view. When sharing documentation, people have to browse to the correct item themselves.
Describe the solution you'd like
Include the type and object in the uri when browsing, so that users can directly share the documentation for the correct object. For example, it could be something like:
https://ibis4example.ibissource.org/iaf/ibisdoc/ <- Shows current start with nothing selected
https://ibis4example.ibissource.org/iaf/ibisdoc/{Type} <- Also shows the list for that type
https://ibis4example.ibissource.org/iaf/ibisdoc/{Type}/{Object} <- Shows the object
Maybe searches should also be included in the URL.
Describe alternatives you've considered
N/A
Additional context
N/A

Solved in new Frank!Doc (to be released soon)


Updates to latest zipkin, eliminating SpanCollector dependency

This reduces the effort of renovating the zipkin component by reducing
the apis used to send data to Zipkin.

This LGTM, but since the original component was written by @davsclaus I'd like to wait for his feedback too

Thanks @adriancole

Sure

I have only on test in error here:
[INFO] Running org.apache.camel.zipkin.SpringZipkinSimpleRouteTest
[ERROR] Tests run: 3, Failures: 0, Errors: 3, Skipped: 0, Time elapsed: 2.027 s <<< FAILURE! - in org.apache.camel.zipkin.SpringZipkinSimpleRouteTest
[ERROR] testZipkinRoute(org.apache.camel.zipkin.SpringZipkinSimpleRouteTest)  Time elapsed: 1.35 s  <<< ERROR!
org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [com.github.kristofa.brave.LoggingReporter] for bean with name 'logSpanReporter' defined in class path resource [org/apache/camel/zipkin/SpringZipkinSimpleRouteTest.xml]: problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: zipkin/reporter/Reporter
	at org.apache.camel.zipkin.SpringZipkinSimpleRouteTest.createApplicationContext(SpringZipkinSimpleRouteTest.java:31)
Caused by: java.lang.NoClassDefFoundError: zipkin/reporter/Reporter
	at org.apache.camel.zipkin.SpringZipkinSimpleRouteTest.createApplicationContext(SpringZipkinSimpleRouteTest.java:31)
Caused by: java.lang.ClassNotFoundException: zipkin.reporter.Reporter
	at org.apache.camel.zipkin.SpringZipkinSimpleRouteTest.createApplicationContext(SpringZipkinSimpleRouteTest.java:31)

[ERROR] testZipkinRoute(org.apache.camel.zipkin.SpringZipkinSimpleRouteTest)  Time elapsed: 0.327 s  <<< ERROR!
org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [com.github.kristofa.brave.LoggingReporter] for bean with name 'logSpanReporter' defined in class path resource [org/apache/camel/zipkin/SpringZipkinSimpleRouteTest.xml]: problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: zipkin/reporter/Reporter
	at org.apache.camel.zipkin.SpringZipkinSimpleRouteTest.createApplicationContext(SpringZipkinSimpleRouteTest.java:31)
Caused by: java.lang.NoClassDefFoundError: zipkin/reporter/Reporter
	at org.apache.camel.zipkin.SpringZipkinSimpleRouteTest.createApplicationContext(SpringZipkinSimpleRouteTest.java:31)
Caused by: java.lang.ClassNotFoundException: zipkin.reporter.Reporter
	at org.apache.camel.zipkin.SpringZipkinSimpleRouteTest.createApplicationContext(SpringZipkinSimpleRouteTest.java:31)

[ERROR] testZipkinRoute(org.apache.camel.zipkin.SpringZipkinSimpleRouteTest)  Time elapsed: 0.343 s  <<< ERROR!
org.springframework.beans.factory.CannotLoadBeanClassException: Error loading class [com.github.kristofa.brave.LoggingReporter] for bean with name 'logSpanReporter' defined in class path resource [org/apache/camel/zipkin/SpringZipkinSimpleRouteTest.xml]: problem with class file or dependent class; nested exception is java.lang.NoClassDefFoundError: zipkin/reporter/Reporter
	at org.apache.camel.zipkin.SpringZipkinSimpleRouteTest.createApplicationContext(SpringZipkinSimpleRouteTest.java:31)
Caused by: java.lang.NoClassDefFoundError: zipkin/reporter/Reporter
	at org.apache.camel.zipkin.SpringZipkinSimpleRouteTest.createApplicationContext(SpringZipkinSimpleRouteTest.java:31)
Caused by: java.lang.ClassNotFoundException: zipkin.reporter.Reporter
	at org.apache.camel.zipkin.SpringZipkinSimpleRouteTest.createApplicationContext(SpringZipkinSimpleRouteTest.java:31)

Probably because now it's zipkin.reporter2.Reporter

nice turnaround!

btw there is also a camel-example-zipkin - not sure if it needs any update as well

thanks for checking. right now, no updates there because it is using http
already

Can we get that unit test fixed so we can get this merged

the easiest fix would be to use Reporter.CONSOLE in that unit test https://github.com/openzipkin/zipkin-reporter-java/blob/master/core/src/main/java/zipkin2/reporter/Reporter.java

I'm able to fix the test but:

The karaf feature will still need io.zipkin.java/zipkin
The camel zipkin starter will still try to use the zipkin reporter 2.3.1, while now we are using zipkin reporter2 with libthrift and version 2.7.1

I can merge my stuff, but what do you think @davsclaus and @adriancole ?

Do you mean that the spring-boot based camel-zipkin-starter is using an older version of Zipkin?
And about Karaf is it because a new OSGi bundle release is needed for zipkin or something?
For what its worth then I do think its worth to get this updated and into the 2.22 release as its a Spring Boot 2 focused release. If there is a bit that may not work on karaf, then we can add that in the known issues section and get it corrected for 2.23.

A full rebuild fixed everything :-)
Now it works fine.

Thanks @adriancole
Merged on master

@davsclaus for the Karaf feature the need for old zipkin stuff is related to the fact that brave-core depends on both version of zipkin 1 and 2 as far as I see.

brave-core had an optional dependency on the old zipkin library. please
dont reintroduce that as we will stop publishing updates for it soon,
causing version skew.
On Mon, 18 Jun 2018, 01:35 Andrea Cosentino<EMAIL_ADDRESS>wrote:

@davsclaus https://github.com/davsclaus for the Karaf feature the need
for old zipkin stuff is related to the fact that brave-core depends on both
version of zipkin 1 and 2 as far as I see.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/apache/camel/pull/2373#issuecomment-397894089, or mute
the thread
https://github.com/notifications/unsubscribe-auth/AAD617jXW_hy3fpooX40BqLeDqC7kwyRks5t9pNdgaJpZM4UlwhT
.

@davsclaus https://github.com/davsclaus for the Karaf feature the need

for old zipkin stuff is related to the fact that brave-core depends on both
version of zipkin 1 and 2 as far as I see.

Actually you are correct. The 4.13.4 version had an accidental hard
dependency on io.zipkin.java used for constants and the like. Will make a
manual release of 4.13.5 to fix that.

https://github.com/apache/camel/pull/2382 takes care of the dependency on io.zipkin.java:zipkin
Note: the example project has a configuration problem which is unrelated to zipkin library versions. I'll try to figure out what's behind it.

PS I don't have time to redo things as brave 4 apis today as time was consumed on the spring configuration problem and decoupling things from io.zipkin.java:zipkin. It will stop bleeding a lot to upgrade this component. There are few projects that require so much backport work compared to original effort. Let's please work together to stop this maintenance pit.

thanks @adriancole


Unable to whitelist endpoints based on namespace labels

Is there an existing issue for this?

[X] I have searched the existing issues

What happened?
I manage a Kubernetes cluster comprising approximately 50 namespaces, each housing various workloads. Within this cluster, I have designated a few 'control' namespaces, and my objective is to enable ingress from all pods within these 'control' namespaces to all the pods residing in other 'worker' namespaces.
To accomplish this, I utilized the https://editor.networkpolicy.io/ tool to generate a Cilium network policy. This network policy incorporates a 'From namespace filter' to specify the desired behavior. However, upon deploying this network policy to the cluster, it did not function as anticipated.
Following Kubernetes manifest to help replicate the issue.
apiVersion: v1
kind: Namespace
metadata:
  name: server
---
apiVersion: v1
kind: Namespace
metadata:
  name: producer-1
  labels:
    allow-server-connection: "true"
---
apiVersion: v1
kind: Namespace
metadata:
  name: producer-2
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  namespace: server
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: server
spec:
  selector:
    app: nginx
  ports:
  - name: http
    port: 80
    targetPort: 80
---
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
  name: allow-access-to-server-pods
  namespace: server
spec:
  endpointSelector: {}
  ingress:
    - fromEndpoints:
        - matchLabels:
            io.kubernetes.pod.namespace.labels.allow-server-connection: "true"
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: good-producer
  namespace: producer-1
spec:
  selector:
    matchLabels:
      app: good-producer
  replicas: 1
  template:
    metadata:
      labels:
        app: good-producer
    spec:
      containers:
      - name: curl
        image: curlimages/curl
        command: ["/bin/sh", "-c", "while true; do curl nginx.server.svc.cluster.local; sleep 5; done"]
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: bad-producer
  namespace: producer-2
spec:
  selector:
    matchLabels:
      app: bad-producer
  replicas: 1
  template:
    metadata:
      labels:
        app: bad-producer
    spec:
      containers:
      - name: curl
        image: curlimages/curl
        command: ["/bin/sh", "-c", "while true; do curl nginx.server.svc.cluster.local; sleep 5; done"]

Cilium Version
v1.13.0 and v1.13.6
Kernel Version
5.4.0-1106-azure
Kubernetes Version
1.24.9
Sysdump
No response
Relevant log output
$ hubble observe -n server -f
Sep  4 08:50:02.994: producer-2/bad-producer-6c76d4587b-h2bwt:35464 (ID:5932) <> server/nginx-ff6774dc6-cpjx5:80 (ID:8353) policy-verdict:none INGRESS DENIED (TCP Flags: SYN)
Sep  4 08:50:02.994: producer-2/bad-producer-6c76d4587b-h2bwt:35464 (ID:5932) <> server/nginx-ff6774dc6-cpjx5:80 (ID:8353) Policy denied DROPPED (TCP Flags: SYN)
Sep  4 08:50:02.998: producer-1/good-producer-69f756497d-6784v:33776 (ID:7151) <> server/nginx-ff6774dc6-cpjx5:80 (ID:8353) policy-verdict:none INGRESS DENIED (TCP Flags: SYN)
Sep  4 08:50:02.998: producer-1/good-producer-69f756497d-6784v:33776 (ID:7151) <> server/nginx-ff6774dc6-cpjx5:80 (ID:8353) Policy denied DROPPED (TCP Flags: SYN)

Anything else?

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Thanks for this issue @MrSupiri, and the great reproduction YAML.
Can I ask for some clarification about what you're aiming for though?
You said

my objective is to enable ingress from all pods within these 'control' namespaces to all the pods residing in other 'worker' namespaces.

If you're aiming to control traffic from the system namespace to other namespaces, then you need an egress policy, not an Ingress one.
Currently, the policy you provide controls connections to pods running in the system namespace, not pods running in the other namespaces.
Could you clarify what about this setup is not working as you want?

In the system namespaces (plural), we have a loose network policy that provides egress access to anywhere. However, within the non-system namespaces, we deny all ingress and egress traffic by default. Nonetheless, I would like to allow ingress traffic from any pod if it originates from a namespace labeled as system.
The YAML provided above reproduces the issue we are experiencing, although it's in a slightly different context. Is there a specific reason why the call from producer-1/good-producer cannot reach the server/nginx?

I think that it's important to remember that each policy is enforced separately.
So, if producer-1 and producer-2 both have egress deny all policies, then that will deny all - the fact that the traffic is allowed by the server namespace doesn't matter because the traffic never gets to leave the producer pods. So you would also need the inverse policy somewhere (allowing egress from namespaces with the label to the server namespace).

Hi @youngnick,
Within the producer-1 and producer-2 namespaces, I did not include any Cilium nor Kubernetes network policies. Just to be sure, I added an egress policy to both namespaces as specified below. However, the requests coming from both good-producer and the bad-producer were still denied.

Updated Kubernetes YAMLs
apiVersion: v1
kind: Namespace
metadata:
  name: server
---
apiVersion: v1
kind: Namespace
metadata:
  name: producer-1
  labels:
    allow-server-connection: "true"
---
apiVersion: v1
kind: Namespace
metadata:
  name: producer-2
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: nginx
  namespace: server
spec:
  selector:
    matchLabels:
      app: nginx
  replicas: 1
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80
---
apiVersion: v1
kind: Service
metadata:
  name: nginx
  namespace: server
spec:
  selector:
    app: nginx
  ports:
  - name: http
    port: 80
    targetPort: 80
---
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
  name: allow-access-to-server-pods
  namespace: server
spec:
  endpointSelector: {}
  ingress:
    - fromEndpoints:
        - matchLabels:
            io.kubernetes.pod.namespace.labels.allow-server-connection: "true"
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: good-producer
  namespace: producer-1
spec:
  selector:
    matchLabels:
      app: good-producer
  replicas: 1
  template:
    metadata:
      labels:
        app: good-producer
    spec:
      containers:
      - name: curl
        image: curlimages/curl
        command: ["/bin/sh", "-c", "while true; do curl nginx.server.svc.cluster.local; sleep 5; done"]
---
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
  name: allow-egress
  namespace: producer-1
spec:
  endpointSelector: {}
  ingress:
    - {}
  egress:
    - toEntities:
        - cluster
    - toEndpoints:
        - matchLabels:
            io.kubernetes.pod.namespace: kube-system
            k8s-app: kube-dns
      toPorts:
        - ports:
            - port: "53"
              protocol: UDP
          rules:
            dns:
              - matchPattern: "*"
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: bad-producer
  namespace: producer-2
spec:
  selector:
    matchLabels:
      app: bad-producer
  replicas: 1
  template:
    metadata:
      labels:
        app: bad-producer
    spec:
      containers:
      - name: curl
        image: curlimages/curl
        command: ["/bin/sh", "-c", "while true; do curl nginx.server.svc.cluster.local; sleep 5; done"]
---
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
  name: allow-egress
  namespace: producer-2
spec:
  endpointSelector: {}
  ingress:
    - {}
  egress:
    - toEntities:
        - cluster
    - toEndpoints:
        - matchLabels:
            io.kubernetes.pod.namespace: kube-system
            k8s-app: kube-dns
      toPorts:
        - ports:
            - port: "53"
              protocol: UDP
          rules:
            dns:
              - matchPattern: "*"

Okay, sorry, I led you wrong the first time. I tried out this config, and found the problem.
In short:

The matchLabels statement in the initial manifest was using io.kubernetes.pod.namespace.labels.allow-server-connection: "true". The correct way to target this is "k8s:io.cilium.k8s.namespace.labels.allow-server-connection": "true" (double quotes to be sure that the : is escaped correctly). You can see this by getting a shell into a Cilium agent pod and doing cilium endpoint list, and then checking the labels visible there.
However, when you don't specify an explicit namespace in a CiliumNetworkPolicy, there's extra rules added - which confine the rule to only acting on endpoints in the server namespace. You can see this with cilium policy get on a node that's running the nginx pod.
To get the result you want, you need a CiliumClusterwideNetworkPolicy:

apiVersion: cilium.io/v2
kind: CiliumClusterwideNetworkPolicy
metadata:
  name: allow-access-to-server-pods-cw
spec:
  endpointSelector:
    matchLabels:
       "k8s:io.kubernetes.pod.namespace": "server"
  ingress:
    - fromEndpoints:
        - matchLabels:
            "k8s:io.cilium.k8s.namespace.labels.allow-server-connection": "true"

With that Policy in place, things work as you wanted - good-producer pods can access http://nginx.server/, but bad-producer pods cannot.
All the troubleshooting commands I've listed here were covered in the Policy troubleshooting page, available at https://docs.cilium.io/en/stable/security/policy/troubleshooting/. I think that you'll get a speedier resolution of your issue in the future if you spend some time with those docs.

Is'nt it a bug that ordinary CiliumNetworkPolicy is not working for selecting namespaces by labels?

Ah it seems it is intended :(
https://docs.cilium.io/en/latest/security/policy/kubernetes/#namespace-specific-information


feat(native-filters): Highlight charts affected by focused native filter

SUMMARY
When user focuses on a native filter (hovers over it or opens select menu), highlight all charts in scope of that native filter (by adding a box shadow around it) and hide the charts outside of scope (by setting opacity to 0.3).
BEFORE/AFTER SCREENSHOTS OR ANIMATED GIF
https://user-images.githubusercontent.com/15073128/118685945-d4d3e000-b803-11eb-9de2-6aaff0088e37.mov
TEST PLAN
Set DASHBOARD_NATIVE_FILTERS feature flag to true.
Add some native filters to the dashboard - be creative with setting their scopes 🙂
Verify that when you hover over Range or Time filter buttons, charts inside the scopes of those filters get highlighted and all other charts are less visible.
Verify that when you open a select menu of Select, Time Column, Time Grain and Group By filters, charts inside the scopes of those filters get highlighted and all other charts are less visible.
ADDITIONAL INFORMATION

[ ] Has associated issue:
[ ] Changes UI
[ ] Includes DB Migration (follow approval process in SIP-59)

[ ] Migration is atomic, supports rollback & is backwards-compatible
[ ] Confirm DB migration upgrade and downgrade tested
[ ] Runtime estimates and downtime expectations provided

[ ] Introduces new feature or API
[ ] Removes existing feature or API

CC: @junlincc @villebro @suddjian

Could you create a sample dashboard with some Tabs, and set filter scope for those charts inside tab?

@kgabryje i believe in the original implementation, when there are multiple tabs, tabs light up if any charts in the tab is mapped to a specific filter.

@graceguo-supercat @junlincc Thank you for comments! The charts inside of tabs are correctly highlighted, however if a chart in filter's scope is in an inactive tab, that tab doesn't get highlighted - I'll try to implement that.
@junlincc Are you sure that tabs were getting highlighted? I don't see the relevant code and there are no tabs highlights in the gif from Grace's comment here https://github.com/apache/superset/pull/10936#issuecomment-707224331

Are you sure that tabs were getting highlighted?

got it, that was in the design but never implemented....😅 ;let's spend a day or 2 to add this feature in a seperate PR

highlight other tabs that have charts scoped to the filter, when user is in a different tab.

when user switch to the highlighted tab, user see highlighted charts in tab

please open a separate PR to disable animation in tab globally @ktmud

please open a separate PR to grey out filters that are not scoped to a specific tag.

@junlincc Are you sure that tabs were getting highlighted? I don't see the relevant code and there are no tabs highlights in the gif from Grace's comment here #10936 (comment)

For filter_box, we don't highlight tabs when only charts inside inactive tab will be impacted. We had this behavior is because filter_box could be placed inside tab. So that if a filter_box only has smaller tab scope, it should be placed inside the tab. It is possible that user sets a filter_box is applicable to multiple tabs but hide the filter_box inside a nested tab, but this case is small (why would someone do that?)
For build-in filter components, things are a little different: every filter component become globally visible in the dashboard, not matter it is applicable to single nested tab or multiple top-level tabs. This change might need us to think about the highlight behavior:

When a filter component is applicable to a nested tab and currently user can not see the nested tab, filter component should be inactive (not in the current implementation but i assume this is in the near future), i think we still should highlight the scope even for the inactive filter component, so that user will know why the filter is not active now and what is its real scope. We should highlight the parent tab which is visible for the user when the charts are deep nested under other tabs.

When a filter component is applicable to one more charts/tabs in the current active tab, filter component is active, we should highlight charts and tabs, so that behavior is consistent with above case.

@graceguo-supercat
for current iteration - we will grey out filters that are not scoped to tabs from the filter bar, as just a visual suggestion that the specific filter won’t apply in the current scope(instead of disabling it). This should reach feature parity with filter box highlighting behavior
For range filter, blue circle will be greyed out; for time range, color darker grey on hovering

Above change will be made in separate PRs
We can discuss next iteration for grouping or foldering filter to tabs(but not now). 🙏

This feature is very intuitive and useful for dashboard users.
However, for some reason this feature is not working for our case (using Superset 1.2). Is there any special feature flag or so that we need to set to enable this? We do not get any error log/info, not sure whats we are missing. Can anyone please hint on it for possible issue? Many thanks all :)

This feature is very intuitive and useful for dashboard users.
However, for some reason this feature is not working for our case (using Superset 1.2). Is there any special feature flag or so that we need to set to enable this? We do not get any error log/info, not sure whats we are missing. Can anyone please hint on it for possible issue? Many thanks all :)

I don't believe this PR made it into 1.2 - however, this should be available in 1.3 (forthcoming)


Big with mirror = true

Expected Behavior
in version v3.0.0-beta.9 settings mirror (for title) working very well in bar chart

Current Behavior
in version v3.0.0-beta.11 settings mirror cutted title

Possible Solution

Steps to Reproduce

Context

Environment

Chart.js version:
Browser name and version:
Link to your project:

Duplicate of https://github.com/chartjs/Chart.js/issues/8473 ?

closing as duplicate. Please re-open if not resolved in beta.12

Thank u!


Justinbarry/ch7110/contracts functions without inputs are failing

Just found this guy while testing pr #1161

I'm didn't take the branch off seadragon.... bah!


Self Check Question Card

Notion ticket link

Self Check Question Card

Implementation description

To see slides please visit: http://localhost:3000/selfCheckQuestions.
Please note that this is not supposed to be a functional prototype, but rather just an interactive mockup. Database connection with the buttons is yet to be added.

Steps to test

Ensure that the code written is up to your standard. If it is not, please provide me with ideas / steps of how to make it better

What should reviewers focus on?

Once again, to see slides please visit: http://localhost:3000/selfCheckQuestions.

Checklist

[x] My PR name is descriptive and in imperative tense
[x] My commit messages are descriptive and in imperative tense. My commits are atomic and trivial commits are squashed or fixup'd into non-trivial commits
[x] I have run the appropriate linter(s)
[x] I have requested a review from the PL, as well as other devs who have background knowledge on this PR or who will be building on top of this PR

Left 2 small comments and there's a few things I want to confirm with the PM's about before merging -- the new changes look  great and I really like the corresponding values addition!

Changes seem to be registering now! One thing to take a look at is that the first two questions always seem to have a question number of 1:

I don't know if this is b/c u initially set the react state to be question 1 but it should probably be looked into before merging

should be fixed!

@ChinemeremChigbo from our chat I remember this PR being complete (- the merge conflict) which is now resolved. So merging this in. Great job again!


y291ga_0.3.0 not working with RFUS v9

I normally run y291ga_0.2.9 in my RFUS v9 cameras. I tried the new version, y291ga_0.3.0, and it will not finish setup. It just says "waiting to connect" forever. On the y291ga_0.2.9 version, it will say it once, then it gets the blue light and starts working. I think there's a bug in this build as it should work with this camera.

Yes, it should work.
Are you using the same sd card or another one?
This has also happened to other users when using slow SD cards.
Probably there is a race condition in the startup script but I can't find it.

I have the same RFUS v9 and RFUS v12 cameras and both variants do not work with y291ga_0.3.0.

Edit: Tried again with a fresh y21ga 0.3.0 + wifi details and it seems work up until the blue lights stay blinking.

Please, explain me better.

Why are you behaving foolishly? Did you intentionally break it? They might have paid you to do it, and now you're making fools of us all!

Edit: Tried again with a fresh y21ga 0.3.0 + wifi details and it seems work up until the blue lights stay blinking.

Please, explain me better.

My bad, I did not reset the camera before inserting a clean copy of y21ga v0.3.0, including wifi ssid and password via factory/configure_wifi.cfg. It probably retained previous wifi details.
Model: YYS.2016 2023.10 RFUS v<IP_ADDRESS>
[y21ga, v0.3.0]
a) Result: Yellow blinking light, "waiting to connect".
Process:

Reset the camera without the sdcard then power down.
Put contents of y21ga v0.3.0 on sdcard. Edit and rename factory/configure_wifi.cfg with wifi ssid and password.
Power up with sdcard and it stays on blinking yellow light with "waiting to connect" audio.
Power down.
Checking the sdcard.. it created a backup and renamed the factory folder with .done.
No root/mtdblock7_xx.bin created.
Checked the backup/mtdblock7.bin dump and there is no ssid or password inside.

Continued from (a)..
b) Result: Blue blinking light.
Process:

Insert the 3 files from sdwifi(depreciated) with ssid and password into /yi-hack.
Power up with sdcard and yellow light blinks for ~10secs followed by solid yellow light for ~10secs, then non-stop blue blinking light with no connection attempt logs on my router.
Power down.
Checked sdcard; Newly created root/mtdblock7_xx.bin - No ssid or password inside.

Start over - try with sdwifi for 1st boot:
c) Result: Blue blinking light.
Process:

Reset camera.
Delete contents of sdcard. Copy clean y21ga v0.3.0. Copy sdwifi(depreciated) into /yi-hack -> edit ssid and password.
Power up with sdcard and yellow light blinks for ~10secs followed by solid yellow light for ~10secs, then non-stop blue blinking light with no connection attempt logs on my router.
Power down
Checked sdcard; it created a backup and renamed the factory folder with .done.
Newly created root/mtdblock7_xx.bin - No ssid or password inside.
backup/mtdblock7.bin - No ssid or password inside.

--
Then I tried y21ga v0.2.9 with sdwifi after resetting the camera and it... connected with solid blue light. Web server works.

Checking the sdcard.. it created a backup and renamed the factory folder with .done.
No root/mtdblock7_xx.bin created.
Checked the backup/mtdblock7.bin dump and there is no ssid or password inside.

This behavior is because the cam is already hacked (/backup/init.sh contains telnetd.

Checked sdcard; Newly created root/mtdblock7_xx.bin - No ssid or password inside.

mtdblock7_xx.bin is the backup before to change wifi credentials. No password inside is correct.
But it should work after the reboot.
If 0.2.9 with sdwifi works you can update to 0.3.0 without lose the wifi data.
A couple of notes:

SSID and password are saved in the first part of the mtdblock7 as a clear text. So, if you backup the partition with dd and open the file with a hex editor (like hxd) you can read them.
mtdblock7_xx.bin is the backup before to save SSID and password, so usually is empty.
A reset with the button should erase SSID and password.
If the cam is hacked the procedure to update wifi credentials is skipped as you can see in the config.sh


View logs not behaving as described

View in analytics -> View container logs does not work for me. No matter what container I click, whether it is windows or linux, kube-system or not, no container logs are ever found except for the debian image that I spun up to ssh into a node according to these directions:
https://docs.microsoft.com/en-us/azure/aks/ssh#get-the-aks-node-address
Any ideas what is going on here? I queried ContainerLog, ContainerLogPoc, ContainerServiceLog, and ContainerServiceLogPoc with no qualifiers but didn't find anything except the debian output I mentioned.

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

ID: a113bacb-b999-8f0d-a66b-748e60e5c4d7
Version Independent ID: d7766575-5ef8-4f9a-49e5-2dbd7696d18e
Content: View Azure Monitor for containers logs in real time
Content Source: articles/azure-monitor/insights/container-insights-live-logs.md
Service: azure-monitor
GitHub Login: @MGoedtel
Microsoft Alias: magoedte

@sirdank Thanks for the Comment. We are actively investigating and will get back to you soon.

Possibly relevant: when I SSH into the node, docker inspect shows me, under .Config.Labels,
"io.kubernetes.container.logpath": "\var\log\pods\default_sample-5b45ffc69c-gsrb8_76e3935c-9380-11e9-9c54-82b582e1bcb4\sample\0.log"
Obviously that path won't exist on my windows agent or inside my windows container. docker inspect on .LogPath gives me "LogPath": "C:\ProgramData\docker\containers\XXXXX\XXXXX-json.log", which does exist and contains the docker json format log output.

We will now close this issue. If there are further questions regarding this matter, please reply and we will gladly continue the discussion.

Forgive me, I don't think this is resolved. The docker log file does exist on the host so my attempt at a helpful suggestion fell flat but we still have the issue that the docker logs aren't going into insights/analytics.


Update husky (^4.3.7) to latest (^6.0.0)

This would close #11 for Windows developers using GitHub Desktop.
(In other words, I can commit normally & the husky hooks will run -- which wasn't true with ^4.3.7 even after npm install.)

Great!


Clean imports

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 100.00%. Comparing base (31bcef3) to head (ee2097f).

Additional details and impacted files
@@            Coverage Diff            @@
##              main       #31   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files           22        22
  Lines          326       325    -1
  Branches        24        24
=========================================
- Hits           326       325    -1

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Add commandline arguments for queuing actions, and for setting the default number of steps.

I can split these up or roll one of them back if there's opposition. Happy to do edits as well.

Queuing actions can be done by adding --allow-queue.
Changing the default number of steps can be done by setting --default-steps 15.

Merged. I pushed a commit on top that provides a bugfix for simultaneous requests racing. With the flag on users should be able to make as many requests as they like.


Option to open all files

Fixes #85
This adds a filter to see all the files in the current directory

Looks good!

Looks good. Merging.


iv - pixel probe for area sampling

Allow a way to sweep out a rectangle and report the min/max/avg values within the rectangle.
(Would be great to have that as ImageBufAlgo as well, if we don't already.)

Coalescing.


Add missing unit tests in Helper module

ref: https://app.codecov.io/github/cieslarmichal/faker-cxx/blob/main/include%2Ffaker-cxx%2FHelper.h

This issue was closed with PR https://github.com/cieslarmichal/faker-cxx/pull/511


ENS name and avatar support

Show ens name and avatar if the user owns it already.

i ll work on it

I'll work on this 🚀

@bigint did you have any luck?


Annotate for nullness?

Hi,
This is a lot of work, but it would be great to have javaslang annotated for nullness of method's parameters and return value.
I'm not exactly sure which annotation library should be used, but any should be ok (they are not all equals in features and expressivity…) I guess because I think all analysers that exploit them understand most… I hope :)

Generally I agree that this might be useful but I'afraid, Javaslang can't depend on any 3rd party library. That is one of the few constraints. Javaslang might only depend on JDK 8.

hm yes, that makes sense!
To complete the discussion, I think there are JSR (I'm thinking of jsr305) that defines annotations for that (but I also think they were kind of abandoned… not sure if they plan to introduce one in jdk9, they wanted to for jdk8 then never did it…).
Another point is that these annotations does not have to be there at runtime, so I don't know if it makes any difference to you… :)
Another option would be to ship some equivalent annotations and hope analysis tools base their analysis on annotation simple names instead of qualified names. I think findbugs does this, I know in eclipse you can configure many annotations for each concept (nullable, nonnul, etc), so it could be acceptable.
Last option is not to include them and let people like me manually annotate them using external annotation mechanisms such as Eclipse's.

Thank you for your investigation. I also think that it is not priority one of Oracle to include these into JDK. There is an Oracle document "Java 8's new Type Annotations" but the link of the (default?) implementation "Checker Framework" does not exist any more.
Let's keep this open for a while. I don't think it will make it into 2.1.0 but it is definitely worth to wait for JDK 9's take on it.
Because these annotations are so basic/essential, our goal should be to use the (yet non-existing) Java standard.
--
However, I think in most cases null is accepted in Javaslang.
For example
List<String> list = List(null); // is OK!

but
String min = list.min(); // throws NPE!

An additional check will help in cases we pass higher-order functions which of course may never be null.
Btw - Javaslang offers the new TODO function, which helps the developer not to use null for rapid prototyping. Some examples:
import static javaslang.API.*;

final String s = TODO("load user name from DB");

int calculateOverallAmount(int basketId) {
    return TODO("sum overall amount of items in user basket");
}

These will fail with a NotImplementedError containing a descriptive message instead of passing null around (which might be overseen and go to production o_O).

From memory - most of the checker frameworks ( and at least IntelliJ ) will work with an @Nullable or @NotNull annotation from ANY package ( since there were so many ), so in theory, javaslang could provide it's own ones.

The checker framework is actually quite active, it is available at this URL: http://types.cs.washington.edu/checker-framework/
For nullness checking in javaslang, I was thinking more about stuffs like the static function provided by Either, Option, List, and so on: they all return non-null values (even if their content could be null in some cases). The same is true for modification operations such as List.append and others.
Usually, you simply annotate your packages as non null by default and then fixes all the warning of the analysis tool until every special case is annotated.
The TODO function is quite nice! I'm going to use it :)

I also think that it is possible but I'm still thinking... My feeling about it is that it is an additional layer of information about the reality. This layer needs to be synchronized with the reality, so it most probably will eventually contain false or missing information.
Because null is almost nowhere used in Javaslang other than in container.getOrElse(defaultValue), container.forEach(maybeNull -> ...), container.peek(maybeNull -> ...) et.al. I don't know if it is really worth to add that complexity.

The only interest of introducing nullness annotations is to play nice with analysers and IDEs so that they can better check user's code: clearly it won't bring anything to javaslang code for sure.

Which nullability annotations to use is still quite a serious problem in Java...
http://io7m.github.io/jnull/documentation/p2s1.xhtml
(This is in no way intended to suggest that mine should be used!)

@io7m FYI, be careful not to mix annotations meant to be used at runtime for constraints validation on beans or user-originated stuffs like that (as the j2e ones or even those in hibernate validation) and those for static analysis used to find bugs in the code (all the others you cite).
Still, what you observe is really a problem… even though I'm not really sure your yet another module is going to make things simpler ^^
I think it would be best to choose one from the existing ones and I'm pretty sure what yours permits to express is covered by at least jsr305 and even maybe the eclipse's one, since it is possible to negate NonNullByDefault behaviour.

FYI, be careful not to mix annotations meant to be used at runtime for constraints validation on beans or user-originated stuffs like that

Yep, I did make that point in the documentation. None of the annotations have consistent retention semantics.

… even though I'm not really sure your yet another module is going to make things simpler

It absolutely isn't, but it at least gives me something consistent to use across all of my own packages.

jsr305

Still has issues in Intellij IDEA, unfortunately. You can't use a custom NonNullByDefault annotation and have to use Intellij's "proprietary" annotations instead to get the same effect.
As I said, I'm absolutely not suggesting to use the io7m annotations. I pointed at that page in the documentation because I know of nowhere else that's listed the issues.

FYI, be careful not to mix annotations meant to be used at runtime for constraints validation on beans or user-originated stuffs like that

Yep, I did make that point in the documentation. None of the annotations have consistent retention semantics.

What I meant by that is that you shouldn't even consider the validation annotations, and your annotations shouldn't be retained at runtime, it makes no sense in the context of static analysis.

Still has issues in Intellij IDEA, unfortunately. You can't use a custom NonNullByDefault annotation and have to use Intellij's "proprietary" annotations instead to get the same effect.

Ah yes, the problem with the meta annotations from jsr305, there is the same problem with the Eclipse way of manipulating annotations and the need for using eclipse's annotations.. pfff, they are terrible :)
Another place where this a lot of discussion on the matter: http://stackoverflow.com/questions/4963300/which-notnull-java-annotation-should-i-use

The nullability problem in Java is not solvable, even with an additional layer of annotations. Some people might use static checkers, others might not. The annotations do not save us from NullPointerExceptions at runtime.
As you mentioned, to date there are several competing implementations. Adding another one does feel a bit like:

This library is about object-functional programming with algebraic data types. There are other ways to make it explicit that there might occur null in the sense of 'not present', e.g. using the Option type.
From the perspective of API maintenance it complicates things for us. All signs suggest not to introduce that additional layer above the existing API.
Even Scala deprecated the @NotNull type for removal:

For now, we will not introduce it in Javaslang. It is the wrong way - to the dark side of the moon. We will stay on the light side.

Value types will almost certainly introduce a concept of non-nullability at the VM level, anyway. Maybe they'll extend that to reference types some day.

I don't really agree with your reasoning @danieldietrich :)
I believe the need exists for annotating methods with nullness information, whatever is the library, as long as users are using nullness analysers and IDE with such feedbacks (you should try such facilities, it's really useful, but terrible to use when you get warnings everywhere because the libraries you use are not annotated).
I agree that solving this need is problematic, especially with the "15 standards" situation ^^ so I agree with the conclusion that it's too much hassle to do it for javaslang for now.
But if there was a unique standardized way of annotating nullness provided by the JDK, I really think it would be useful to have javaslang annotated!
FYI I personally started using the external annotations facilities of Eclipse to annotate what I use of javaslang for my needs.
And btw, they didn't deprecate the annotation in scala, but a trait (like an interface with defaults). I don't even think scala has such annotations…

I believe the need exists for annotating methods with nullness information, whatever is the library, as long as users are using nullness analysers and IDE with such feedbacks

I'm following this discussion with great pleasure, and I totally agree with @danieldietrich's reluctance of adding any annotation for nullness.
Mike Ernst is a brilliant guy and the author of the checker framework. I've once met him in person at a conference, and he was quite disappointed that most people endlessly bikeshed nullness when talking about the checker framework, rather than realising what powerful and complex type systems they could be implementing instead using annotations (and then be type checking using his framework).
This is important to realise. You cannot possibly think that engaging in a "parallel universe" type system involving type annotations is a simple task, or that you will stop at abusing that language feature for "just some simple" null checks. At some point, you will want to annotate collection emptiness, string "size-ness", number "positive-ness", "single-stream-consumption-ness" etc., so this is a very strategic decision that must not be underestimated (at least in a cleanly designed, not so wishy-washy API).
The Java community (and many other communities) are extremely obsessed with this null legacy. Sure, we all wish languages (and the JVM) were designed without this burden, but we now have it and it usually isn't all that bad, unless some junior developer on the team thinks that it's a good idea to have null collections or something. In a library like Javaslang, you can in fact be very sure that you will hardly ever encounter null, because references in Javaslang are mostly one of three things:

A collection, which is never null but empty
An Option which replaces null (it is in fact a collection of cardinality 0..1)
A non-null reference

Likewise, in Scala, you don't have this discussion, because the Scala language and libraries are designed in very similar ways as Javaslang, so there's no real need for such an annotation in Scala.
TL;DR: YAGNI! So, why not just disable your IDE warnings for all Javaslang API usage? :)
(and if your IDE cannot type check only parts of your application for these annotations, then it is doing it wrong)

TL;DR: YAGNI! So, why not just disable your IDE warnings for all Javaslang API usage? :)

Good idea actually, didn't think of that :)

Another option nobody mentioned: let's treat null as if it were -0.0F ... or false ... or a space character ... or NaN ... or a Void[]{} ... or a transaction of 0 dollars from "Jane Doe" to "John Smith" through the Null Islands!
We could then return 0 for the average or min for an empty collection AND if it only contains a null ... we would correct so many mistakes automagically!

As @danieldietrich already witnessed several times, I hate nulls and I would eliminate most null checks  (probably even Objects.requireNonNull calls and simply state in the documentation that "null will result in undefined behavior"), and especially the above abominations, where null is treated as a default value automagically!

Too bad I didn't see this discussion earlier. I'm referring to

the dark side of the moon. We will stay on the light side.

which I feel should be clarified a bit. I think this can cause misunderstanding so let me try to dig into that topic.
From our perspective, we sometimes see the moon entirely, partially or we don't see it at all. This is due to lunar phases. If we dig a bit more into detail, we'll discover there's no such thing as the dark side or light side of the moon. There are two things that play into the issue.

The moon is not a perfectly sphere with a perfect mass/gravity distribution - with every point on its surface equidistant from its center. The shape of the moon is that of an oblate spheroid, meaning it has the shape of a ball that is slightly flattened. This causes earth's gravity to pull over time on the most massive parts which slow down moon's rotation. This happened over a very long time which caused the moon to be tidally locked to the earth. Because of conservation of angular momentum, the moon tries to rotate, but earth's gravity applies a torque which causes the moon to align with the side we see right now.

The moon still rotates, but it does it only once per each revolution around the earth (about once every 27.3 days). The moon's orbit and rotation around the earth are causing what we call lunar phases. With the rotation around the earth, we are only able to see a certain part of the moon illuminated by the sun. One side of the moon is always illuminated, but we aren't able to see always the whole illuminated side. A full moon from our perspective is when the moon is right behind the earth (as seen from the sun or called opposition). At half moon we see the moon from the side and if we don't see the moon (new moon) the moon is right between the earth and the sun (or called inferior conjunction).

TL; DL:

There are only a near side and a far side of the moon.
Each side gets the same amount of light over the period of rotation.
We are just not able to see it from our perspective.

References:

https://en.wikipedia.org/wiki/Orbit_of_the_Moon
https://en.wikipedia.org/wiki/Lunar_phase
https://www.youtube.com/watch?v=j91XTV_p9pc

Personally I will not dive deeper - the result stays the same, for now Javaslang will not include null-checks in form of annotations/as API addition.
This issue stays open for any community discussion. It is a hot topic. Many opinions exists. Please write yours - there is not the one and only truth. Be kind and respectful.
- Daniel

@mp911de nice one :) will show that my 8 yo son - he is interested in space travel / planets & stars

Just a quick note on JSR-305 annotations...
The oracle JRE redistribution terms expressly declare that only java and/or javax released through the JSR process may be included with the entire distribution if you are redistributing a JRE.
It is unclear whether this prevents redistribution of class files that include annotation references to annotations within the java or javax packages, so this may not affect everyone...
But TL;DR if you bundle a JRE you must ensure that the jar claiming to be JSR-305 annotations is excluded as that JSR has not had an official release

I use the annotations as a nice clear and consistent form of documentation.  Generally nullness (along with thread safety and immutability) is not documented (at least at the method level, e.g. getOrElse does not explicitly state that other can be null).  If you specify these annotations then you are making it explicit that you (as the class author) have considered and documented nullness (in a hard-to-miss manner).

@pgpx thx!

at least at the method level, e.g. getOrElse does not explicitly state that other can be null

The 'semantics' of the Javaslang API spec is as follows (the same as I understand the JDK Java API docs):

if nothing special is stated, method arguments of a specific type accept every possible value of that type
if a method is a partial function, i.e. the method range is defined for a subset of the domain, then the javadoc describes two things:

which values of a specific parameter are valid
what happens if an invalid value is passed (for a specific parameter)

The API describes much more than just non-nullability.

Oh, that does make sense.  I guess I'm too used to working with legacy code that has little to no Javadoc, in which case adding some nullness annotations is a quick way of helping my understanding (but arguably should also/instead involve better documentation and/or migrate to Optional/non-null collections, etc).  That doesn't apply to Javaslang anyway, so you shouldn't have to add non-standard annotations as well (and analysis tools could/should support separately defining the nullness of 3rd party libraries anyway without modifying their code).

@mp911de "The Dark Side of the Moon" was an album by Pink Floyd that dealt with things that "make people mad". The title is "an allusion to lunacy, rather than astronomy". Source: Wikipedia
listen here


security and Chromium / Chromium OS compatibility

Hello,
If we install Android apps with this tool, are the apps isolated through a virtual machine or LXC container?
Is it possible to run Android apps in Chromium and Chromium OS or just Chrome and Chrome OS?
Maybe this information could be added to the readme.
Thanks.

The android apps are a single GUI, not the full android interface.
It is possible to run the apps in Chrome OS.


Chase-Wenner

Main push will do Extra credit now

3, good job. You can do stretch on the same branch.

i didnt wanna screw up something so i just left it as a separate branch


How to use this in a .sketchplugin?

Hi Mathieu,
I've spent a few hours trying to get your module to work, but without success. Can you maybe give a few pointers on how this could be used in a .sketchplugin? A bare bone example would already be a big help.
Best,
Andre

By chance I found the missing link: skpm. Adding a link to the readme might save someone a headache. ;) Thanks for your work on these Mathieu!

Yes, you need to bundle your code, skpm is one of the tools you can use to do this.
Happy to merge a PR to clarify this in the readme


Fix source-code link typo

There was a small typo in the "Contact" section, this resolves it.

Thanks!