Features/timestamp-embedding-parser

Timestamp-embedding-parser

@mohitmundhragithub to share the code used to generate this embedding.

@RSMNYS, The function where the time step embedding is generated is shared here: https://github.com/mlcommons/submissions_mobile_v4.1/issues/6#issuecomment-2399205941

From QPM Tutorial package, if we go to this file: <qpm_package>\StableDiffusion1.5\model\example1\redefined_modules\diffusers\models\embeddings.py
get_timestep_embedding( ) function generates the time embeddings.

<qpm_package>\StableDiffusion1.5\model\example3\host_linux_target_android_without_native\qnn_model_execution.ipynb
Above function is called from the top level notebook: get_time_embedding( )

@RSMNYS, The function where the time step embedding is generated is shared here: https://github.com/mlcommons/submissions_mobile_v4.1/issues/6#issuecomment-2399205941

From QPM Tutorial package, if we go to this file: <qpm_package>\StableDiffusion1.5\model\example1\redefined_modules\diffusers\models\embeddings.py
get_timestep_embedding( ) function generates the time embeddings.

<qpm_package>\StableDiffusion1.5\model\example3\host_linux_target_android_without_native\qnn_model_execution.ipynb
Above function is called from the top level notebook: get_time_embedding( )

@mohitmundhragithub Shown code is only for the embedding generation. And no operations from the cut part are shown. (fully connected layer, Logistic/Sigmoid activation, and mul operation.

@AhmedTElthakeb to provide a small tflite with only 3 operations.
@mohitmundhragithub will try to compare tflite and onnx files.

@AhmedTElthakeb to provide a small tflite with only 3 operations.
sdv15_time_emb_head_int8.zip

Hi guys! So I've used to the model prepared by Ahmed to generate the embedding file. Now all works good. Here the link to the colab: https://colab.research.google.com/drive/1LG_rC5dlx2CbW2ZF4EamOnCdwtwLQESv?usp=sharing to prepare the embedding file, and the link to the models and embedding file: https://drive.google.com/drive/folders/1CT6VUWwGaTw34Za6dTJE7ptms20NUKH3?usp=sharing

please use .pkl for the save the embedding.
@mohitmundhragithub please help figure out the difference between the one generated by @RSMNYS and Q's.

once the .pkl is done, please make the embedding part of the files to be downloaded for Stable Diffusion for the TFLite backend.

please use .pkl for the save the embedding.
@mohitmundhragithub please help figure out the difference between the one generated by @RSMNYS and Q's.

here you can find 2 files in json format to be able to compare numbers at least: https://drive.google.com/drive/folders/1SO1akyvWd2uYz9Xf_u5OGBJLetuW6x5A?usp=sharing

guys, I've updated the colab to generate the pkl file. Also adjusted embedding_utils code to parse this. Here you can find the pkl file: https://drive.google.com/file/d/1pDd5wZje1KbIS4JcWzhDx00aN8GmTBpc/view?usp=share_link

once the pickle is done, please make the embedding part of the files to be downloaded for Stable Diffusion for the TFLite backend.

@anhappdev I think for this we only need to upload the new UNET model (without embedding operations), and our embedding file. Right?  If yes, can you please help upload those 2 files to the storage, from where we download models and other assets:
https://drive.google.com/file/d/1pDd5wZje1KbIS4JcWzhDx00aN8GmTBpc/view?usp=share_link
https://drive.google.com/file/d/1Sf2lcRDjSfg9jgABWWbV5EeWEmXl5CsJ/view?usp=share_link

@anhappdev I think for this we only need to upload the new UNET model (without embedding operations), and our embedding file. Right? If yes, can you please help upload those 2 files to the storage, from where we download models and other assets:
https://drive.google.com/file/d/1pDd5wZje1KbIS4JcWzhDx00aN8GmTBpc/view?usp=share_link
https://drive.google.com/file/d/1Sf2lcRDjSfg9jgABWWbV5EeWEmXl5CsJ/view?usp=share_link

@RSMNYS Here is the URL for the 2 files you shared
(Please remember to update the checksum in the backend settings)
https://mobile.mlcommons-storage.org/app-resources/models/v4_1/tflite/timestep_embeddings_data.pkl
https://mobile.mlcommons-storage.org/app-resources/models/v4_1/tflite/sd_diffusion_model_dynamic.tflite
And other model files for reference:
https://mobile.mlcommons-storage.org/app-resources/models/v4_1/tflite/sd_decoder_dynamic.tflite
https://mobile.mlcommons-storage.org/app-resources/models/v4_1/tflite/sd_text_encoder_dynamic.tflite

We need to update the release here with the new model and embeddings https://github.com/mlcommons/mobile_open/releases

We need to update the release here with the new model and embeddings https://github.com/mlcommons/mobile_open/releases

[ ] Ok. I will do it after we merge this PR.

2 files to the storage, fr

I compared the 2 TS embeddings.
Few observations:

The timestamp sequences in the 2 cases are different. QTI backend has the timestep sequences from here: https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_dpmsolver_multistep.py#L364
TFLite uses the the TS values directly from the tflite model. QTI uses it from the DPMSolverMultistepScheduler.  The end result being values of the time stamps are different in the 2 cases.

There are some operations done on the above TimeStamp values, in the function get_time_embedding() in the file model\example1\redefined_modules\diffusers\models\unet_2d_condition.py, which in turn calls the function shared here: https://github.com/mlcommons/mobile_app_open/pull/928#issuecomment-2482672443 . These operations are required for the QTI backend's UNet's latent input.
Even on using the same TS values as got from DPMSolverMultistepScheduler, and applying them using the logic shared by Sergji in https://drive.google.com/file/d/1pDd5wZje1KbIS4JcWzhDx00aN8GmTBpc/view?usp=share_link, to generate the embeddings, QTI backend doesn't get acceptable accuracy.
I would like to reiterate that the Latent inputs in this case are dependent on the platform / sw stack / quantization methods used by each backend etc. We can't have the same latent inputs for each of the platform, and hence we shouldn't make it part of the app. It should be part of the backend instead. For these large models we need to accept this fact that the implementation for each of the backend can't be exactly the same. Right now Stable Diffusion and going fwd other LLMs is going to have these limitations. Moreover, the latent input is not the input to the use case, but it's the input of one of the intermediate models.
I don't see the TS embeddings being separately defined in the inference group as well.
The Unet model that is loaded by the Tutorial script is shared here at this location inside the QPM: model\example1\redefined_modules\diffusers\models\unet_2d_condition.py. Its creating the same model (minus the three ops) using the original weights but also, adopting to the AIMET quantization for quantsim. This model is then exported to the onnx format, which is consumed during inference.

Why is QTI backend using a different scheduler than one in the reference implementation? We have commit id in the app.
We are happy to align to that scheduler or QTI should use same scheduler, let us discuss the differences in the meeting

QTI backend is using the standard scheduler, as has been prescribed in the original model, and also the scheduler implementation in huggingface as already mentioned earlier (standard torch implementation).
https://github.com/huggingface/diffusers/blob/main/src/diffusers/schedulers/scheduling_dpmsolver_multistep.py#L364
This is called from stable_diffusion.ipynb (line 153) in the tutorial from QPM.
from diffusers import DPMSolverMultistepScheduler\n

Please provide a PR to show the exact extra operations that are missing in the TimeStamp calculation, are these operations done alternatively in the network for reference implementation?

This is the exact function used to find the TimeStepEmedding. I see the exact same functions also defined in here in the huggingface repository for diffusers:
https://github.com/huggingface/diffusers/blob/main/src/diffusers/models/embeddings.py#L976
Basically, its linear function -> silU -> linear function again.

Did you quantize again, or just pass it through?

Didn't quantize again. Just passthrough.
Seems like there are a few differences in the original pytorch model from huggingface and the tflite model?

We are happy to align with QTI, can you do a PR that enable us to reproduce the embedding? This is an input to the network, not an intermediate latent, so everyone should use same input to have a Fair benchmark

The input to the whole SD pipeline is the input prompt. Because of the complexity of the implementation, different frameworks seems to have different implementation in this case.

@mohitmundhragithub please confirm what the input is supposed to be.
@AhmedTElthakeb: suggested the op / layer after the timestep embeddeding is SiLU, which mean, it cut after the second linear layer.
@freedomtan to check the two schedulers (the one used by Keras, the one used by Diffuser).
@RSMNYS: please the two schedulers, too.

Should we merge this PR into submission-v4.1 instead of master?

@mohitmundhragithub please confirm what the input is supposed to be. @AhmedTElthakeb: suggested the op / layer after the timestep embeddeding is SiLU, which mean, it cut after the second linear layer.
@freedomtan to check the two schedulers (the one used by Keras, the one used by Diffuser). @RSMNYS: please the two schedulers, too.

I checked the onnx file again. input_2 is fed to sigmoid and mul which should be equivalent to SiLU as discussed in the meeting today.

Should we merge this PR into submission-v4.1 instead of master?

I think so.
Master doesn't have changes from qti backend from submission-v4.1 as well, yet.

@RSMNYS Please check the new models shared by @AhmedTElthakeb in mobile_model_closed to generate the new time emebeddings

@RSMNYS
Release: https://github.com/mlcommons/mobile_model_closed/releases/tag/alpha-tflite-v0.2

Time embedding head: Lin -> SiLU -> Lin [float32 model]
sdv15_time_emb_head_LinSiluLin_fp32.tflite
UNET new time embedding input goes to SiLU layer [int8 model]
sd_diffusion_full_model_dynamic_int8_mlperfv41_v2.tflite

Also here: https://github.com/mlcommons/mobile_model_closed/issues/12#issuecomment-2533334894

Current noise scheduling for TFLite was derived from my C++ code, which in turn was from Keras CV's code

according to the Keras CV Stable Diffusion noise scheduler code and comments, it was derived from Hugging Face DDPM implementation
it seems to me what @mohitmundhragithub referred to is not  a scheduling method, but a ODE solver.

@RSMNYS Release: https://github.com/mlcommons/mobile_model_closed/releases/tag/alpha-tflite-v0.2

Time embedding head: Lin -> SiLU -> Lin [float32 model]
sdv15_time_emb_head_LinSiluLin_fp32.tflite
UNET new time embedding input goes to SiLU layer [int8 model]
sd_diffusion_full_model_dynamic_int8_mlperfv41_v2.tflite

Also here: mlcommons/mobile_model_closed#12 (comment)

Hi guys! The new models works good. But we have one issue with pickle file format. And the problem is  it's hard to decode and parse in c++, we need to use some special libs to parse it (and I wan't able to find such), or manual parsing which is hard and complex to parse the pickle data and protocols. So what I did I saved the tilmestep and embeddings in the same format as we originally had from Mohit. So while we can have the embedding part in pkl file format, in the c++ code I still use the old bin file format.
So let's decide tomorrow if we need to stick to pkl or we can use the existing one .bin.
The code to save embedding you can see in colab:
https://colab.research.google.com/drive/1LG_rC5dlx2CbW2ZF4EamOnCdwtwLQESv#scrollTo=B6UTUZcQuj2f

we also tried at our end.
The output generated with the timestep sequences from AIMET and the embeddings generated using the script which Sergji shared, works fine and gives good accuracy.
we still want to try generating the accruacy score with the timestep sequences from tflite.

Hi,
This is the script that we used to generate the pickle file. It contains couple of changes to generate the .pkl file in required format.
time_emeddings.py.txt
I was slightly wrong in the meeting. The qti backend cpp code doesn't consume the pkl file directly. The pkl file is consumed by the flatten.py file shared here: https://github.com/mlcommons/mobile_app_open/blob/submission-v4.1/mobile_back_qti/DLC/util/StableDiffusion/flatten.py#L96
This generates a bin file, which gets packed along with other model files, and is consumed by the qti backend along with the models.
@RSMNYS was also suggesting something similar in the meeting.

@anhappdev please help put the embedding file to the right place (Cloudflare?)
@mohitmundhragithub please share the "final" embedding binary file (so that we can double-check it)
@anhappdev please create 5.0 submission branch after the checking is done. And then we can fixed the file location, and then free the submission branch.

@RSMNYS Please change the base branch of this PR from master to submission-v4.1.

@RSMNYS Can you please create a public GitHub repo and upload all the relevant files there like I did in this one and use those GitHub links for the backend settings.
After we have a running code with final models / files, I will replace the GitHub links with the CloudFare one. This way I don't miss or upload wrong files.


HapticFeedback not working on Android Samsung Galaxy A52s 5G, Android 14

Steps to reproduce
Add the following to a button on pressed, or a gesture detector on tap wrapping any element
HapticFeedback.heavyImpact(); //not working
HapticFeedback.mediumImpact(); //not working
HapticFeedback.lightImpact(); //not working
HapticFeedback.selectionClick(); //not working
HapticFeedback.vibrate(); // working

Expected results
Should vibrate with different intensities
Actual results
Does not vibrate at all on the ones that don't work, vibrates on the last one
Code sample
import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(
          title: Text('Centered Button Page'),
        ),
        body: CenterButtonPage(),
      ),
    );
  }
}

class CenterButtonPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Center(
      child: ElevatedButton(
        onPressed: () {
         HapticFeedback.heavyImpact();
                            HapticFeedback.mediumImpact();
                            HapticFeedback.lightImpact();
                            HapticFeedback.selectionClick();
        },
        child: Text('Press Me'),
      ),
    );
  }
}

Screenshots or Video

Screenshots / Video demonstration
[Upload media here]

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Stefan@Stefans-Laptop ~ % flutter doctor -v
[✓] Flutter (Channel stable, 3.16.0, on macOS 14.3.1 23D60 darwin-arm64, locale en-US)
• Flutter version 3.16.0 on channel stable at /Users/Stefan/Library/Flutter
• Upstream repository https://github.com/flutter/flutter.git
• Framework revision db7ef5bf9f (3 months ago), 2023-11-15 11:25:44 -0800
• Engine revision 74d16627b9
• Dart version 3.2.0
• DevTools version 2.28.2
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2)
• Android SDK at /Users/Stefan/Library/Android/sdk
• Platform android-33, build-tools 33.0.2
• Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
• Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
• All Android licenses accepted.
[✓] Xcode - develop for iOS and macOS (Xcode 15.2)
• Xcode at /Applications/Xcode.app/Contents/Developer
• Build 15C500b
• CocoaPods version 1.12.1
[✓] Chrome - develop for the web
• Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome
[✓] Android Studio (version 2022.3)
• Android Studio at /Applications/Android Studio.app/Contents
• Flutter plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/9212-flutter
• Dart plugin can be installed from:
🔨 https://plugins.jetbrains.com/plugin/6351-dart
• Java version OpenJDK Runtime Environment (build 17.0.6+0-17.0.6b829.9-10027231)
[✓] IntelliJ IDEA Ultimate Edition (version 2023.3.3)
• IntelliJ at /Applications/IntelliJ IDEA.app
• Flutter plugin version 77.3.1
• Dart plugin version 233.13763.5
[✓] Connected device (4 available)
• SM A528B (mobile)            • R5CT21Z80KR               • android-arm64  • Android 14 (API 34)
• Teodorescu’s iPhone (mobile) • 00008101-0003681E1AC2001E • ios            • iOS 17.2.1 21C66
• macOS (desktop)              • macos                     • darwin-arm64   • macOS 14.3.1 23D60 darwin-arm64
• Chrome (web)                 • chrome                    • web-javascript • Google Chrome 113.0.5672.126
! Error: Browsing on the local area network for Teodorescu’s Apple Watch. Ensure the device is unlocked and discoverable via Bluetooth. (code
-27)
[✓] Network resources
• All expected network resources are available.

same issue

same behavior (only HapticFeedback.vibrate() works) on Samsung Galaxy A15 5G running Android 14

Glad to hear from you but it's not working for Samsung A13 device
On Wed, 28 Feb 2024, 02:00 stevethehu, @.***> wrote:

same behavior (only HapticFeedback.vibrate() works) on Samsung Galaxy A15
5G running Android 14
—
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/144226#issuecomment-1967496770,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AZHXR5AZBZVVU2GCEDARXB3YVY3PBAVCNFSM6AAAAABD4EHILSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSNRXGQ4TMNZXGA
.
You are receiving this because you commented.Message ID:
@.***>

@FizbyteSoftware
I think this is similar to https://github.com/flutter/flutter/issues/73987 in which you can follow-up for further updates.
You may also share your findings in that issue for better tracking.
Closing this in favor of the linked issue. If you disagree, write in comments and I'll reopen it.


Numbers on range_filter_slider not variate with scrollX:true and Reset Buttons will not Work

If we use scrollX=true in DataTable then the numbers which comes on range_number_slider (start,end) will not increments/decrements as the slider moves. And also the filter_reset button besides the filter will not work of all filters.
here is the fiddel
[update] Its only occurring when we use the footer option in the yadcf constructor.On the header its working fine.
updated fiddel

fixed in 0.9.0.beta.14 see sample
oopsi - forgot about the [x] button - will fix it later

properly fixed in 0.9.0.beta.16 see sample


Add style include paths for angular6 libraries (ng-packagr)

- [ ] bug report -> please search issues before submitting
- [x] feature request

Area
- [x] devkit/build-ng-packagr

Versions
Angular CLI: 6.0.8
Node: 8.11.2
OS: win32 x64
Angular: 6.0.4
... animations, common, compiler, compiler-cli, core, forms
... http, language-service, platform-browser
... platform-browser-dynamic, router

Package                            Version
------------------------------------------------------------
@angular-devkit/architect          0.6.8
@angular-devkit/build-angular      0.6.8
@angular-devkit/build-ng-packagr   0.6.8
@angular-devkit/build-optimizer    0.6.8
@angular-devkit/build-webpack      0.7.0-beta.2
@angular-devkit/core               0.6.8
@angular-devkit/schematics         0.6.8
@angular/cli                       6.0.8
@ngtools/json-schema               1.1.0
@ngtools/webpack                   6.0.8
@schematics/angular                0.6.8
@schematics/update                 0.6.8
ng-packagr                         3.0.1
rxjs                               6.2.0
typescript                         2.7.2
webpack                            4.8.3

Desired functionality

enable the configuration option "stylePreprocessorOptions" for the library build or use the settings from the default project (not the best idea I guess)

Workaround

currently the workaround would be to use the configuration in the ng-package.json (https://github.com/dherges/ng-packagr#what-if-i-have-multiple-sassscsslessstylus-include-paths)

We definitely don't want to assume the settings from another app in this case. The currently behaviour is ideal we feel, where each project defines its own build settings. The file where build options for ng-packagr are defined is ng-package.json.

Thanks for the explanation, I can understand that.


Fix for memory leak

Release Note for 8.1.1 fixing memory leak
Before publication, add the user ticket incidents to the fix. These are all linked to this internal ticket:
https://mendixsupport.zendesk.com/agent/tickets/88098/incidents

Before publication, add the user ticket incidents to the fix. These are all linked to this internal ticket:
https://mendixsupport.zendesk.com/agent/tickets/88098/incidents


fix(table): render cells even if data is falsy

This was an optimization assuming that undefined data was meant to create a row without cells. This is a faulty design decision and the logic is incorrect anyways (see issue, 0 and other falsy values caused empty rows).
Supported workaround to rendering empty rows is to use the when predicate that can define a row without columns.
Fixes #7902

Added a unit test


@gg can't handle the closure from Threads.@spawn

julia> using Base.Threads: @sync, @spawn

julia> @generated function foo()
           quote
               out = zeros(Int, 10)
               for i in 1:10
                   @spawn out[i] = i
               end
               out
           end
       end
foo (generic function with 1 method)

julia> @sync foo()
ERROR: The function body AST defined by this @generated function is not pure. This likely means it contains a closure or comprehension.
Stacktrace:
 [1] top-level scope at task.jl:318

Do you think there is a workaround for this?

Hi, this is due to GG cannot process macrocalls, how about inserting the expanded ast as gg's parameter?

Should fixed now

Update the dependencies(JuliaVariables, NameResolution) and try the master branch @MasonProtter

If you still have any problem, just reopen it.


Svd

line 304, in load
obj = pik.load()
UnicodeDecodeError: 'ascii' codec can't decode byte 0x83 in position 1: ordinal not in range(128)

Finished!

Finished


pull request for e2e test at 01/30/2017 15:26:11

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


#98 전형절차 엔티티 추가

Resolved #98

Codecov Report

Merging #99 (2bc8869) into main (ca06122) will increase coverage by 5.56%.
The diff coverage is 83.33%.

@@             Coverage Diff              @@
##               main      #99      +/-   ##
============================================
+ Coverage     24.40%   29.97%   +5.56%
- Complexity       48       56       +8
============================================
  Files            31       32       +1
  Lines           381      387       +6
  Branches          3        3
============================================
+ Hits             93      116      +23
+ Misses          288      271      -17

Impacted Files
Coverage Δ

...ment/domain/screeningprocess/ScreeningProcess.java
83.33% <83.33%> (ø)

.../domain/recruitment/code/ScreeningProcessCode.java
81.81% <0.00%> (+81.81%)
:arrow_up:

Continue to review full report at Codecov.

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


nats should have a command line client

Similar to redis-cli. This allows bash scripting and easy interactive diagnostics.

Thanks for the feedback. Can you please elaborate a bit on the functionality that you are looking for and a sample session? Thanks!

Initially, a repl (like the telnet interface) that terminates tls/autn(n/z) would be very useful. I can think of a few features that I would like to see.

Easily publish a single message
Subscibe to a subject and exec a subcommand for each message with the message as an arg[1]
Expose info from admin interface like perf and health of cluster

There are probably more but I need to play around with nats a bit more to buildup the list. Bash is very accessible and a command line tool is a great way to interactively explore a new api and prototype against it.

Expose info from admin interface like perf and health of cluster
For this case you can check out nats-top and exposing monitoring port fron the nats server via gnatsd -m :) https://github.com/nats-io/nats-top/releases

Easily publish a single message

the nats-pub example lets you easily publish a message:
nats-pub <subject> <body>

Subscribe to a subject and exec a subcommand for each message with the message as an arg[1]

the nats-sub example lets you easily subscribe to a message:
nats-sub <subject
For the processing your pipeline could use something like expect.

I started a natscli for my own personal use with our micro-service project. You guys are welcome to use / contribute if you would like. https://github.com/Swampy821/natscli

You have to install ruby-nats to use nats-pub and nats-sub command
For Ubuntu 16.04
sudo apt-get install ruby
sudo apt-get install ruby-dev
sudo gem install nats

Now run
nats-sub foo &
nats-pub foo 'Hello World!'

There are similar CLI for go-nats, java-nats, etc.


Fix for the 26 items max task inventory bug.

Credit to Hyacinth Jean for sleuthing the fix and Jim Tarber for supplying it to Skye-Grid.  This should still be tested before integration into a release but as you can see it's a fairly straightforward fix.

This does not work on the newly running Skye-Grid.   I'm sure its my error but looking into more.

Ideally, you want to test to confirm that it is working before you submit the PR.
Because you are actually modifying your fork, based on what you see to be fit for what you're doing with your grid, it is important to keep in mind you want to test against a clean unmodified copy of the HalcyonGrid source code and use a clean fork that your not modifying for your grid when doing the PR.  This way you can be sure you submit clean valid code that works with HalcyonGrid's version and will avoid accidentally sending commits to HalcyonGrid that are version specific to what you're doing on your grid and not intended for HalcyonGrid.  It also helps HalcyonGrid project managers keep and maintain their projects in a clean way.

Thanks for the CICD-101.  This change was against a clean copy of upstream.    I pushed the PR because I had received a copy of the patch and hadn't yet seen anything by others who claim to have "fixed" it.  I'll close this and resubmit later after testing if no one else steps forward with a fix for it.

I personally tested the fix in Enchanted. It worked. However I am not sure they started from a clean fork, and actually they messed with the version numbering.


Updated facebook SDK version

Changes:

Updated facbook SDK from version 2.9 to 4.0

 Update SDK used for facebook login


Test/Check dependencies shouldn't be hard dependencies

Currently we have things like valgrind as a hard depedency when they are only used for testing. valgrind is specifically significant as its size is well above average compared to most packages. We should disable the affected tests when the dependencies are not present instead of failing the meson setup.

fwiw, this is an intentional decision to have a predictable build setup. In the past (mostly before meson but that's largely coincidental) we used to enable bits depending on whether packages were available or not. The side-effect of that is that users would build the software and report bugs because well, they built without libfoo and thus the behaviour wasn't the same. Now the general attitude is more: have one specific build type that is the accepted default, anything else must be explicitly changed by the user at configure/meson time.
We have an option to disable tests which will also avoid the valgrind dependencies. But if you're running tests, you should also run them in valgrind to spot any leaks or invalid writes/reads.

I wasn't talking about overall dpendencies, I was talking about check depedencies, the ones used to run tests. I was particularly interested in making valgrind optional.


compress all images

Compress all images on the site so they are optimized for web use

.deploy

.deploy


add site name to facilities

Add site name to Facilities in BQM plugin
POA fix to copy poa info object received from AM only if present

I'm so glad we made ABQM generation into a plugin.


Create or update a Checkmk data source using HTTP API

Hi,
grafana provides a HTTP API to create or update a data source.
Here is the doc: https://grafana.com/docs/grafana/latest/developers/http_api/data_source/
Does Checkmk support creating or updating using API? Can you give me a request example?
Thanks!

So you want to create a Checkmk data source in Grafana via the Grafana HTTP-API? This should be possible for all data sources whether they are built in or plugins. I would create one data source manually and then use the API to receive the data, to learn about the data format. Then you can adapt the data and use another endpoint to create a new data source.
We currently have limited resources to maintain this plugin, so please understand that I can not help you with generic Grafana issues not directly caused by this plugin. This is why I will close this issue. If I misunderstood your question, please comment and I will reopen it.


Gimmicks

Maybe make color things/switches that can disable (or maybe also enable?) certain colored objects in the environment based on the switch/item


[FIXED JENKINS-24930] Alternating row bg colors

Also switches to using the PNG icons so there's no ugly white background for the icon when the row background is light grey.

@reviewbybees

Thank you for a pull request! Please check this document for how the Jenkins project handles pull requests

:+1:

@recena feel free to change it ;-)

Thanks @stefanbrausch!

@stefanbrausch Then, I don't understand why we do revisions /cc @daniel-beck

@recena Not sure what you mean by revisions. Review, perhaps? Plugin maintainers are free to merge (or reject) proposed changes by anyone whenever they want. See also:
https://github.com/reviewbybees/about
https://wiki.jenkins-ci.org/display/JENKINS/Governance+Document
https://wiki.jenkins-ci.org/display/JENKINS/Pull+Request+to+Repositories

@daniel-beck Sorry, "reviews" not "revisions". I know these documents, but I don't like "feel free to change it" when we have an opened PR. I'll add a new ticket and a new PR for change this CSS.


rbenv 1.2.0 (from Homebrew) not installing versions to ~/.rbenv/versions on Mac OS Ventura

Using Homebrew and rbenv I've been unable to get Ruby 3.1.4 installed on Mac OS Ventura and I'm not sure what else to try at this point.
brew upgrade
brew install rbenv
brew install ruby-build

rbenv init

I copied the following to both .zshrc and .zprofile, and I've also run source .zshrc and source .zprofile before doing the following.
eval "$(rbenv init - zsh)"

I also notice ~/.rbenv/versions/ is an empty folder
rbenv install 3.1.4

This runs successfully with the following output at the end, indicating it should have installed in ~/.rbenv/versions:
Status Legend:
(OK):download completed.
/var/folders/y2/03vklqzd7zg2sygdq0h4p4r00000gn/T/ruby-build.20230613151642.94078.9AY948/ruby-3.1.4 /var/folders/y2/03vklqzd7zg2sygdq0h4p4r00000gn/T/ruby-build.20230613151642.94078.9AY948 ~/.rbenv/versions

This gives the expected error when I try to set the global Ruby version with rbenv global 3.1.4
rbenv: version '3.1.4' not installed
Running ls ~/.rbenv/versions/ only indicates it's still an empty folder
rbenv --version says rbenv 1.2.0
ruby-build --version says ruby-build 20230608
What else can I try here? Thank you.

This runs successfully with the following output at the end, indicating it should have installed in ~/.rbenv/versions:
Status Legend:
(OK):download completed.
/var/folders/y2/03vklqzd7zg2sygdq0h4p4r00000gn/T/ruby-build.20230613151642.94078.9AY948/ruby-3.1.4 /var/folders/y2/03vklqzd7zg2sygdq0h4p4r00000gn/T/ruby-build.20230613151642.94078.9AY948 ~/.rbenv/versions

Hi, this output looks strange to me. Is this all there is in the output? This doesn't look like a successful installation.
Were there any other error messages in the output?
Can you verify that rbenv install exited with a success status? You can do that with: rbenv install 3.1.4 && echo SUCCESS

Closing due to lack of information.


Crash On ViewStore.init

Describe the bug
When launching the app via Xcode with a debug build on a physical iPad, the app crashes.
It behaves very similarly to the other reports of stack overflow with large state. However, I have wrapped any relevant branches of state with a Copy on Write box. The memory layout of the state being used in the ViewStore being initialized is:
MattersState:
Size: 3 KB
Stride: 3 KB
Alignment: 8 bytes
The crash is very early in the life of the app before any meaningful amount of state has been fetched from the server.
There is some complicated state in enum associated values and I am currently working on refactoring that to see if it helps.
But again, any of that enum state is behind copy on write wrappers.
To Reproduce
WIP
WIP

Expected behavior
The app should run as expected without crashing.
Screenshots

Environment

swift-composable-architecture version 0.23.0
Xcode 12.5.1
Swift 5.4.2
OS: iOS 14.7.1

Additional context
https://github.com/pointfreeco/swift-composable-architecture/issues/620
https://github.com/pointfreeco/swift-composable-architecture/discussions/488

I found one more spot where a CoW wrapper could help and that fixed it. The state in question went from 3KB to 2KB. I guess that was enough.


Use node-sass v8 when testing Sass compilation

See https://github.com/sass/node-sass/releases/tag/v8.0.0

Have another look too, but I've rebased my sass-test-matrix branch
I've added more commits for extra Node.js versions running here: https://github.com/alphagov/govuk-frontend/actions/runs/3481861957

I don't think we need to care about multiple Node versions here – the Sass tests exist to give us confidence that our Sass compilers when used with the oldest and newest versions of the compilers we say that we support.
We should just test each compiler running in the latest version of Node / Ruby that is supported by the compiler.

I don't think we need to care about multiple Node versions here – the Sass tests exist to give us confidence that our Sass compilers when used with the oldest and newest versions of the compilers we say that we support.
We should just test each compiler running in the latest version of Node / Ruby that is supported by the compiler.

In my head (with Node.js 18 now in LTS) some contributors and our govuk-frontend users downstream might be stuck on older Node.js versions (14, 16) with various combinations too of node-sass@7 and node-sass@8.
You hope it never happens, but a wider safety net sounded good.
Do we know how many haven't made the Dart Sass switch yet?

I don't think we need to care about multiple Node versions here – the Sass tests exist to give us confidence that our Sass compilers when used with the oldest and newest versions of the compilers we say that we support.
We should just test each compiler running in the latest version of Node / Ruby that is supported by the compiler.

In my head (with Node.js 18 now in LTS) some contributors and our govuk-frontend users downstream might be stuck on older Node.js versions (14, 16) with various combinations too of node-sass@7 and node-sass@8.
You hope it never happens, but a wider safety net sounded good.
Do we know how many haven't made the Dart Sass switch yet?

Feel like this is tangential to the changes in this PR, so let's pick this up as/when your changes turn into a PR or issue.
Given the rest of the repo is now running Node 18 I'm going to merge this as is.


added "gateway"

https://github.com/MicrosoftDocs/windows-itpro-docs/issues/8023

Dear @JohanFreelancer9,
kindly do the copy editor review for this PR.
Dear @e0i, for your information
Thank you


Use quilt.yml for data dependencies

Quilt just released support for quilt.yml, which is like requirements.txt but for data

Great, definitely addresses a pain point.


Secure hello-world Java Hibernate doc

Fixes  #8914.
Code in cockroachlabs/hello-world-java-hibernate#1.

This change is

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/060481e0674b5ff256b11039bc74e6751e3a32fe/
Edited pages:

v20.2/build-a-java-app-with-cockroachdb-hibernate.md

Online preview: http://cockroach-docs-review.s3-website-us-east-1.amazonaws.com/80c3e05ad9d28dab2f20b0e5338317d73f7e985f/
Edited pages:

v20.2/build-a-java-app-with-cockroachdb-hibernate.md


feat(python): expose delete operation

Description
Naively expose the delete operation, with the option to provide a predicate.
I first tried to expose a richer API with the Python FilterType and DNF expressions, but from what I understand delta-rs doesn't implement generic filters but only PartitionFilter. The DeleteBuilder also only accepts datafusion expressions. So Instead of hacking my way around or proposing a refactor I went for the simpler approach of sending a string predicate to the rust lib.
If this implementation is OK I will add tests.
Related Issue(s)

closes #1417

@guilhem-dvr can you also expose the writer_properties to be passed to delete?

@ion-elgreco what would be a good way to expose writer_properties? I see in https://github.com/delta-io/delta-rs/pull/1685/files that I could look for every key in a HashMap, but that would be very verbose and not reusable.
I'm new to python bindings with rust, would there be a way to expose WriterProperties and all the structs it relies on to the python module?

@ion-elgreco what would be a good way to expose writer_properties? I see in https://github.com/delta-io/delta-rs/pull/1685/files that I could look for every key in a HashMap, but that would be very verbose and not reusable.
I'm new to python bindings with rust, would there be a way to expose WriterProperties and all the structs it relies on to the python module?

The thing is you need to create a WriterProperties struct with the builder, so I am not sure if there is a way around checking if the value of a key exists and then calling that method to add with the builder.

@guilhem-dvr can you also expose the writer_properties to be passed to delete?

Should I expose the metadata as well?

Probably good idea, I also need to add in the MERGE operation.

I first tried to expose a richer API with the Python FilterType and DNF expressions, but from what I understand delta-rs doesn't implement generic filters but only PartitionFilter. The DeleteBuilder also only accepts datafusion expressions. So Instead of hacking my way around or proposing a refactor I went for the simpler approach of sending a string predicate to the rust lib.

Sorry our expressions/predicates are a mess. We have these DNF filters, PyArrow expressions, and DataFusion expressions.
As an aside, there is some work to make these all easier to convert between through Substrait. PyArrow expressions will have methods to convert to/from Substrait ones in 14.0.0, and my colleague Weston Pace is working on similar support in DataFusion.

I first tried to expose a richer API with the Python FilterType and DNF expressions, but from what I understand delta-rs doesn't implement generic filters but only PartitionFilter. The DeleteBuilder also only accepts datafusion expressions. So Instead of hacking my way around or proposing a refactor I went for the simpler approach of sending a string predicate to the rust lib.

Sorry our expressions/predicates are a mess. We have these DNF filters, PyArrow expressions, and DataFusion expressions.
As an aside, there is some work to make these all easier to convert between through Substrait. PyArrow expressions will have methods to convert to/from Substrait ones in 14.0.0, and my colleague Weston Pace is working on similar support in DataFusion.

That's great, does that mean once substrait support is there in data fusion, we could essentially support any library in Python that can convert expressions to substraits (for example Polars)?

@ion-elgreco I attempted to expose parquet's WriterProperties to Python - with a proper class through the binding - but ultimately not all fields are easily parseable. It would be doable but I'm not sure it would belong to this CL, and I also wonder if some of the features that are needed shouldn't be part of parquet instead of deltalake.
Also, I had issues with the app metadata between pyo3 and serde_json - but that's more down to my Rust knowledge I think.


Convert to TypeScript

The objective of this PR is to help our migration process to TS.
We will be able to use both TS and JS then just get rid of JS when all the code has been ported to TS.

Support TS and JS file (for smooth transition to type script)
Generate JS bundles as before
Generate definition files
Add a .tslint configuration file for editors to nicely pick up changes
Transpile every file (3 files) to TS

I would recommend starting with ts-loader, given it aligns with the official webpack docs...

Hi @ftonato, can i take this up?

It's yours, good luck o/

Unfortunately the pull request (#9) was not effective, so this question is still waiting for solutions ...


Allow ability to verify token in custom header location

Currently, tokens can only be verified under the "authorization" header, and only the "realm" can be customized with options on the plug. This change will allow users to verify tokens in headers other than those found in the "authorization" field, like so:
plug Guardian.Plug.VerifyHeader,
  header_name: "x-access-token",
  realm: "",
  claims: %{"typ" => "access"}

Codecov Report

Merging #597 into master will increase coverage by 0.03%.
The diff coverage is 100%.

@@            Coverage Diff             @@
##           master     #597      +/-   ##
==========================================
+ Coverage   86.12%   86.15%   +0.03%
==========================================
  Files          21       21
  Lines         418      419       +1
==========================================
+ Hits          360      361       +1
  Misses         58       58

Impacted Files
Coverage Δ

lib/guardian/plug/verify_header.ex
70.83% <100%> (+1.26%)
:arrow_up:

Continue to review full report at Codecov.

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

@vaer-k could you add some documentation about this as well?

@vaer-k could you add some documentation about this as well?

Of course; happy to.

@vaer-k also I forgot, can you add an entry to CHANGELOG.md describing the change for the incoming releases, please.

@yordis What version number should this go under?

@vaer-k put it at the top since we didn't create a release for

@yordis OK, all set.

@vaer-k I am sorry I meant before line 1 like the first line since this doesn't belong to that release, sorry for the confusion.

@yordis No worries, I'm just not clear what version is current so it's not clear whether 1.1 is released yet or not. Anyway thanks for your guidance. I've placed this update on the top of the file with no version header above it, so that you can add that line when you release whatever version is next. I hope that's what you wanted?


fix(list-satellite): don't stub methods on destroy

Noticed some unusual behaviour when recreating a VerticalCollection, because we reuse instances of the ListSatellite class we can't stub out the heightDidChange when it is destroyed
var foo = ListSatellite.create({ ... });
foo.heightDidChange // "function(dY) { this.radar..."
foo.destroy();

var bar = ListSatellite.create({ ... });
foo.heightDidChange // noop (expect: "function(dY) { this.radar...")

Twinsies:
https://github.com/runspired/smoke-and-mirrors/pull/133/files#diff-0c8b8dca94ffcddffb7b448946abaa59L7

I suspect that this could cause an issue with the occludable-area component
I think that there is a dependency on didShift getting cleared out when the satellite is recycled. Otherwise this method could be called.

I suspect that this could cause an issue with the occludable-area component

Good point, will close this in favour of something like https://github.com/runspired/smoke-and-mirrors/pull/133#issuecomment-248478667


Can I generate and download automatically OpenAPI json locally when run the app?

First check

[x] I added a very descriptive title to this issue.
[x] I used the GitHub search to find a similar issue and didn't find it.
[x] I searched the FastAPI documentation, with the integrated search.
[x] I already searched in Google "How to X in FastAPI" and didn't find any information.
[x] I already read and followed all the tutorial in the docs and didn't find an answer.
[x] I already checked if it is not related to FastAPI but to Pydantic.
[x] I already checked if it is not related to FastAPI but to Swagger UI.
[x] I already checked if it is not related to FastAPI but to ReDoc.
[x] After submitting this, I commit to one of:

G'day everyone!
I'm wondering whether is possible to download the OpenAPI json document at the time I start my application. I know that if I run it and go to https://localhost:8000/docs I can download it. But my purpose is download it automatically when I run the application, it generate the OpenAPI json and download it to my project.
I already have this:
def custom_openapi():
    if app.openapi_schema:
        return app.openapi_schema

    openapi_schema = get_openapi(
        title="Dashboards ",
        version="v1",
        description="Api Dashboard",
        routes=app.routes,
    )
    openapi_schema["info"]["x-logo"] = {
        "url": "https://fastapi.tiangolo.com/img/logo-margin/logo-teal.png"
    }
    app.openapi_schema = openapi_schema
    return app.openapi_schema

app.openapi = custom_openapi

@app.get("/dashboards")
def first():
    logger.info("Worked")
    return {'status': 'OK', 'message': 'Worked just fine!'}

When I run it locally, I can get it on /docs just fine. But I must find an way that I also generate it locally at the time that I run the application.

Feel free to improve it:
import json

from aiofile import async_open
from fastapi import FastAPI, Request

app = FastAPI()

@app.get("/")
def potato():
    return None

@app.on_event("startup")
async def startup():
    async with async_open("/tmp/hello.json", 'w+') as afp:
        await afp.write(str(json.dumps(app.openapi()).encode("utf-8")))

Thanks mate!! Helped a lot here!!

Thanks for the help here @Kludex ! 👏  🙇
Thanks for reporting back and closing the issue @arthuravila26  👍

Sorry for the long delay! 🙈  I wanted to personally address each issue/PR and they piled up through time, but now I'm checking each one in order.

My solution is old, use anyio instead of aiofiles: https://anyio.readthedocs.io/en/stable/streams.html#file-streams


can't find the executable

can't find the executable, i don't know where it is all i have is a DSMapStudio.sln

You've downloaded the source code.
You can find a link to releases on the sidebar on the right of the github page.
If you need the latest assets for Armored Core 6, there's an update of those available in the tools channel of servername, linked in the program's help menu.


Laravel 5.7.* installation problem

I think Laravel 5.7.* is not supported:

Problem 1
- Installation request for agontuk/schema-builder ^1.2 -> satisfiable by agontuk/schema-builder[1.2.0].
- Conclusion: remove laravel/framework v5.7.1
- Conclusion: don't install laravel/framework v5.7.1
- agontuk/schema-builder 1.2.0 requires illuminate/support 5.1.|5.2.|5.3.|5.4.|5.5.* -> satisfiable by laravel/framework[5.3.x-dev, 5.4.x-dev, 5.5.x-dev], illuminate/support[5.1.x-dev, 5.2.x-dev, 5.3.x-dev, 5.4.x-dev, 5.5.x-dev, v5.1.1, v5.1.13, v5.1.16, v5.1.2, v5.1.20, v5.1.22, v5.1.25, v5.1.28, v5.1.30, v5.1.31, v5.1.41, v5.1.6, v5.1.8, v5.2.0, v5.2.19, v5.2.21, v5.2.24, v5.2.25, v5.2.26, v5.2.27, v5.2.28, v5.2.31, v5.2.32, v5.2.37, v5.2.43, v5.2.45, v5.2.6, v5.2.7, v5.3.0, v5.3.16, v5.3.23, v5.3.4, v5.4.0, v5.4.13, v5.4.17, v5.4.19, v5.4.27, v5.4.36, v5.4.9, v5.5.0, v5.5.16, v5.5.17, v5.5.2, v5.5.28, v5.5.33, v5.5.34, v5.5.35, v5.5.36, v5.5.37, v5.5.39, v5.5.40, v5.5.41, v5.5.43].
- Can only install one of: laravel/framework[5.4.x-dev, v5.7.1].
- Can only install one of: laravel/framework[5.5.x-dev, v5.7.1].
- illuminate/support 5.2.x-dev conflicts with laravel/framework[v5.7.1].
- illuminate/support 5.3.x-dev conflicts with laravel/framework[v5.7.1].
- illuminate/support 5.4.x-dev conflicts with laravel/framework[v5.7.1].
- illuminate/support 5.5.x-dev conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.2.43 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.2.45 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.3.0 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.3.16 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.3.23 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.3.4 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.4.0 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.4.13 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.4.17 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.4.19 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.4.27 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.4.36 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.4.9 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.5.0 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.5.16 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.5.17 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.5.2 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.5.28 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.5.35 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.5.36 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.5.37 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.5.39 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.5.40 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.5.41 conflicts with laravel/framework[v5.7.1].
- illuminate/support v5.5.43 conflicts with laravel/framework[v5.7.1].
- laravel/framework 5.3.x-dev conflicts with laravel/framework[v5.7.1].
- don't install illuminate/support 5.1.x-dev|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.1.1|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.1.13|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.1.16|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.1.2|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.1.20|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.1.22|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.1.25|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.1.28|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.1.30|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.1.31|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.1.41|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.1.6|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.1.8|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.2.0|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.2.19|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.2.21|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.2.24|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.2.25|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.2.26|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.2.27|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.2.28|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.2.31|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.2.32|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.2.37|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.2.6|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.2.7|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.5.33|don't install laravel/framework v5.7.1
- don't install illuminate/support v5.5.34|don't install laravel/framework v5.7.1
- Installation request for laravel/framework (locked at v5.7.1, required as 5.7.*) -> satisfiable by laravel/framework[v5.7.1].

Yes, currently 5.7 isn't supported. I'll try to fix it when I have some time, PR is also welcome.

i fixed this in
https://github.com/Agontuk/schema-builder/pull/6
am using 5.8


CI: enable support to skip packaging

When running just the tests for certain components, it would be
preferable to skip the packaging which can take a few minutes.

@swift-ci please build toolchain Windows platform

@swift-ci please build toolchain Windows platform

@swift-ci please smoke test


fix: module name declares

i'm get
go get<EMAIL_ADDRESS>parsing go.mod:
        module declares its path as: github.com/jellydator/ttlcache/v2
                but was required as: github.com/ReneKroon/ttlcache/v2

ReneKroon repo is declares
check this plz

Codecov Report

Merging #16 (c4a6be3) into main (c60dacc) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #16   +/-   ##
=======================================
  Coverage   60.47%   60.47%
=======================================
  Files           5        5
  Lines         253      253
=======================================
  Hits          153      153
  Misses         87       87
  Partials       13       13

Flag
Coverage Δ

unittests
60.47% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

persist/memory.go
90.90% <ø> (ø)

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


Add smoothing functions example

In GitLab by @Huite on Dec 23, 2021, 13:54
Regridder for aggregation (e.g. 5x5m to 100x100m)
Scipy convolve for moving windows

The regridder in iMOD Python is deprecated and is planned to be removed in the v1.0 release.
Use the xugrid regridder for single arrays
Or use iMOD Python to regrid entire MODFLOW6 simulations and packages


Create an EODMS QGIS plugin

@keballantyne can you make the repo public?

The repo is now public. I'll add it to the public QGIS plugin repository


Dead link (HTML/CSS Style Guide)

https://google.github.io/styleguide/htmlcssguide.html#Optional_Tags
HTML5 specification - page is unavailable.

Maybe they had a temporary outage, as this page is working fine for me:
https://html.spec.whatwg.org/multipage/syntax.html#syntax-tag-omission


[Workspace Feeds] [External] Add a support for new system messages

Part of the Workspace feeds project.
Implement the following part of the design doc.
@koko57 @VickyStash @allgandalf @DylanDylann

Later phase of implementation

@koko57 will work on this one

Will be picked up soon

@mountiny same here- should we wait for the backend?

yes

Updated the title to reflect the hold on #407836

@trjExpensify this one should be on hold 😃 https://github.com/Expensify/App/issues/44317 - @mountiny has already updated the title. This one - I can start working on it

Yeah I think there is actually not many changes for this one and they do not have to be on hold, will update the title

Great, let's do it then!

@mountiny @shawnborton these messages will appear in the Workspace chat or in a chat with the user we're assigning the card? I've noticed one thing:
for the CARDISSUED and CARDMISSINGADDRESS we're showing the assignee name, whereas for the CARDISSUEDVIRTUAL we're showing "You" instead of the user's name.

I think we should stick to the one pattern, if it's a direct message to the user assigned maybe it would be better to go with "You" (no logic for user name and pronouns would be required). If it would be a workspace message visible to other users we have to go with the name though.

I agree they should be consistent. I think we wanted to use a mention to GBR the chat for the user being issued a card for added awareness.
I totally agree with not using "You" or including gender specific copy that needs to be "pronoun aware". CC: @kevinksullivan not sure why we did that really.

these messages will appear in the Workspace chat or in a chat with the user we're assigning the card?

Oh, and yes, these messages are posted in the workspace chat of the member being assigned a card. 👍

@trjExpensify thanks! So we're going with pattern:
a

or b

A! There can me other people in the workspace chat.

Agree with the cionsistency, I think that was an oversight on my part. Here is alternative copy we can use to avoid pronouns/"you", while keeping the mention:

Issued @kevin an Expensify Card! The card will be shipped once a mailing address is added.

Issued @kevin an Expensify Card! The card will arrive in 2-3 business days.

Issued @kevin a virtual %Expensify Card%! The card can be used right away.

Love it!

This is better also because we can send the same message to everyone

@kevinksullivan great! Thanks!

@MariaHCD will there be the card assignee accountID in the report action item?

@koko57 yes, it will be in message.assigneeAccountID as int

opening the PR for review although typecheck fails strangely

This is non-core issue so focusing elsewhere

Keeping this open until we get this tested in full stack

Focusing on getting the core issues in and then tacking this

This is being tackled on this week

We are working on cleaning up these messages

We need to still update slightly the message in BE so not closing

I wonder what is left to do here, we have tested the report actions already so maybe we can close this one 🤔 @MariaHCD @trjExpensify

Yeah, what did you mean by this though?

We need to still update slightly the message in BE so not closing

Right, sometimes I do mean things I write, the auth messages do not have the mentions in them.
Gonna make a PR for it

PR is ready and we can close it after https://github.com/Expensify/Auth/pull/12579

Dope, deployed, closing!


Compilation errors when using latest Google Test (post 1.8.0)

Starting with https://github.com/google/googletest/commit/fe402c27790ff1cc9a7e17c5d0aea4ebe7fd8a71, C-Mock fails to build when using IMPLEMENT_FUNCTION_MOCKn.
Example from self tests:
In file included from /C-Mock/include/cmock/cmock.h:38:0,
                 from add_function_mock.h:4,
                 from add_function_mock.cc:1:
add_function_mock.cc: In member function 'testing::internal::MockSpec<int(int, int)>& AddFunctionMock::cmock_func(const testing::Matcher<int>&, const testing::Matcher<int>&)':
/C-Mock/include/cmock/cmock-function-mockers.h:241:42: error: invalid initialization of non-const reference of type 'testing::internal::MockSpec<int(int, int)>&' from an rvalue of type 'testing::internal::MockSpec<int(int, int)>'
     return mocker.With(cmock_a1, cmock_a2); \
                                          ^
add_function_mock.cc:3:1: note: in expansion of macro 'IMPLEMENT_FUNCTION_MOCK2'
 IMPLEMENT_FUNCTION_MOCK2(AddFunctionMock, add, int(int, int));
 ^
Makefile:21: recipe for target 'add_function_mock.o' failed
make[1]: *** [add_function_mock.o] Error 1
make[1]: Leaving directory '/C-Mock/test'
Makefile:16: recipe for target 'test/cmock_test' failed
make: *** [test/cmock_test] Error 2

Any update on this? I want to use C-Mock with latest Gtest. So please confirm if there is a plan to fix it.


Mewtwo Y dropping wrong stone

Megas should be dropping their respective stones;
Mega Mewtwo X should drop Mewtwonite X, and Mega Mewtwo Y should drop Mewtwonite Y;
I defeated Mega Mewtwo Y and received Mewtwonite X. Sadly I don't have a screenshot of the Mega Mewtwo itself; but Evie (Titan) was there when I defeated it

Already reported in the main mod, pending fix: https://pixelmonmod.com/tracker.php?p=2&t=18680


Portugal channels are dead.

All links are dead.

This hasn't been updated in 8 years. What did you expect?

This hasn't been updated in 8 years. What did you expect?

Why did you posted it anyway ? I know that. I noticed that. It was old thread. Please closed it. And thanks anyway.

This hasn't been updated in 8 years. What did you expect?

Why did you posted it anyway ? I know that. I noticed that. It was old thread. Please closed it. And thanks anyway.

If you want some links for m3u8, I have them (official channel links).

This hasn't been updated in 8 years. What did you expect?

Why did you posted it anyway ? I know that. I noticed that. It was old thread. Please closed it. And thanks anyway.

If you want some links for m3u8, I have them (official channel links).

Yes i would love one. Can I please? 🙏🏼

RTP1:  https://streaming-live.rtp.pt/liverepeater/smil:rtp1HD.smil/playlist.m3u8
RTP2: https://streaming-live.rtp.pt/liverepeater/smil:rtp2HD.smil/playlist.m3u8
SIC: https://d1zx6l1dn8vaj5.cloudfront.net/out/v1/b89cc37caa6d418eb423cf092a2ef970/index.m3u8
TVI: https://raw.githubusercontent.com/ipstreet312/freeiptv/master/ressources/tvipt/sh/tvi.m3u8
SIC Notícias: https://d277k9d1h9dro4.cloudfront.net/out/v1/293e7c3464824cbd8818ab8e49dc5fe9/index_3.m3u8
RTP3: https://streaming-live.rtp.pt/liverepeater/smil:rtpnHD.smil/playlist.m3u8
CNN Portugal: https://raw.githubusercontent.com/ipstreet312/freeiptv/master/ressources/tvipt/sh/cnnpt.m3u8
V+TVI (new channel): https://video-auth2.iol.pt/live_tvi_ficcao/live_tvi_ficcao/edge_servers/tvificcao-720p/playlist.m3u8
Porto Canal: https://bcovlive-a.akamaihd.net/34ec8f209dcc48dda853aca054c97ab2/eu-west-1/6415811594001/playlist.m3u8
Euronews PT: https://0ff3c09c7580460e8e018cdcaacbadee.mediatailor.us-east-1.amazonaws.com/v1/manifest/44f73ba4d03e9607dcd9bebdcb8494d86964f1d8/RakutenTV-pt_EuroNewsLive/de58
ARTV (parliament): https://playout175.livextend.cloud/livenlin4/definst/2liveartvpub2/playlist.m3u8
RTP Memoria (not 24/7): https://streaming-live.rtp.pt/liverepeater/smil:rtpmem.smil/playlist.m3u8
FamaTV: https://204280.global.ssl.fastly.net/64cd4f589272294ee667108d/live_2f24d2e05bfd11eeb524673aae68b8ac/playlist.m3u8
If you want I have some radios too.
All of these are official links. Except for TVI and CNN PT because the official link has a token, so someone posted an m3u8 that auto-updates the official links.

Thabks! I prefer more tv channels thought. 🙏🏼👍🏼😎


Missing file VERSION for source installation from PyPI

When doing an install from source from PyPI, the installation fails because the VERSION file is missing:
❯ pip install dask-pytorch --no-binary :all:
Collecting dask-pytorch
  Downloading dask-pytorch-0.1.0.tar.gz (8.1 kB)
    ERROR: Command errored out with exit status 1:
     command: /Users/jqi/miniconda3/bin/python3.8 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/nq/vp3dgt812jgb0q09rh5l706c0000gn/T/pip-install-lwhzmu1h/dask-pytorch/setup.py'"'"'; __file__='"'"'/private/var/folders/nq/vp3dgt812jgb0q09rh5l706c0000gn/T/pip-install-lwhzmu1h/dask-pytorch/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /private/var/folders/nq/vp3dgt812jgb0q09rh5l706c0000gn/T/pip-pip-egg-info-_i2ttudx
         cwd: /private/var/folders/nq/vp3dgt812jgb0q09rh5l706c0000gn/T/pip-install-lwhzmu1h/dask-pytorch/
    Complete output (5 lines):
    Traceback (most recent call last):
      File "<string>", line 1, in <module>
      File "/private/var/folders/nq/vp3dgt812jgb0q09rh5l706c0000gn/T/pip-install-lwhzmu1h/dask-pytorch/setup.py", line 7, in <module>
        with open("VERSION", "r") as f:
    FileNotFoundError: [Errno 2] No such file or directory: 'VERSION'
    ----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.

This won't be a problem for most users because pip will install from the wheel distribution, but in some cases the wheel won't work and pip will fall back to unpacking the tar archive and installing from source. You can download the tar archive manually and see that indeed the VERSION file is missing.
VERSION is a nonstandard file for setup.py builds, so you'll need to create a MANIFEST.in file that explicitly includes it. https://packaging.python.org/guides/using-manifest-in/

Thanks @jayqi !
I can add this and add a test that installs from the tarball produced by python setup.py sdist so we catch other issues with non-wheel installs in the future.


support screenshotting tweets without an account?

For tweet links: https://platform.twitter.com/embed/Tweet.html?id=TWEET_ID (replace TWEET_ID with the number of a tweet URL)

Thanks for the request.
The module is made for screenshot the main tweet components. I think support embed tweet screenshots would be very complex in the project and there are already many projects as tweet image generator with embed, you can use them.


Need VOD file types that are supported by desktop browsers

Is your feature request related to a problem? Please describe.
Its frustrating that the package supports pretty much every kind of device browser - except desktop browsers.  The solution otherwise works beautifully.  It creates m3u8 files that work on all the handheld devices I've tested. BUT I need to install a special extension in my desktop browser (Chrome) so I can view the files.
Describe the feature you'd like
It would be great if the solution also generated vod files that are natively playable on desktop browsers (i.e. not just m3u8 files).
Additional context
I really like this solution. It works perfectly except for what I've described.  Hopefully, there is a "nerd knob" somewhere that I can change to give me the suggested vod file changes. Thank you for your time.

@raulmlamzn So, I guess what I'm asking for isn't possible right now?

nvm.  Found workaround.


Default line endings for text files

From what I recall, .gitattributes, is checked recursively upwards until one is found and if none is found then it uses a default. Since there is a .gitattributes file here it's used, but it's missing the line ending setting so what file endings are used in the files stored in git can be whatever the author had it to (making it platform dependent).
When working on multiple platforms, you can get issues where your IDE doesn't understand the extra characters.
I've added the most common default. You can take it from there and maybe set up some specific things for images and fonts.
As an example, the React repo uses this same default:
https://github.com/facebook/react/blob/main/.gitattributes

Note: Expect to see some extra file changes in the commits after this. It'll happen until all files has had their line endings normalized.
You can also do a giant commit changing all of them, and then ignoring that commit when looking at the history with https://www.moxio.com/blog/43/ignoring-bulk-change-commits-with-git-blame

Thank you ❤


XSS Injection in result display area

the cute_penda tag is caused by xss

XSS?

yes, the selected text should be displayed as
<cute_penda>: ubuntu的說面環境好頓QAQ
bug i actully got
: ubuntu的說面環境好頓QAQ
the <cute_penda> was though as a html tag intead enscaped to <cute_penda>
it is apparently a xss injection problem

Ah. Not XSS, but yes document isn't escaped properly and thus getting processed by the browser's render engine.
Fixed with https://github.com/andzdroid/mongo-express/commit/bac47eceaf6bf6602dd9995f96a80da223fde1bf


[WFLY-9440] Register requirement for jacc-policy capability

https://issues.redhat.com/browse/WFLY-9440
Similiar fix is needed for Undertow, but for now I wasn't sure whether it makes sense to add implementation of CapabilityReferenceRecorder for use with boolean attributes to core.
Please make sure your PR meets the following requirements:

[ ] Pull Request title is properly formatted: [WFLY-XYZ] Subject or WFLY-XYZ Subject
[ ] Pull Request contains link to the JIRA issue(s)
[ ] Pull Request contains description of the issue(s)
[ ] Pull Request does not include fixes for issues other than the main ticket
[ ] Attached commits represent units of work and are properly formatted

For bigger changes, major and minor component upgrades make sure your PR also meets following requirements:

[ ] Pull Request requires a change to the documentation
[ ] Documentation have been updated accordingly
[ ] Tests were added to cover changes

For new features ensure as well:

[ ] Analysis was done
[ ] Test Plan has been done
[ ] Tests were verified in advance

If you are not an active contributor of the WildFly project you can request sponsorship by one of the members to help guide you through the process.

@tadamski I see failures in Ejb3TransformersTestCase.testRejectionsEAP640

@kabir fixed

@tadamski Please @ ping me when the conflict is resolved so we can stop holding you up by leaving it open.

@tadamski Can you rebase this so we can clear it out of the PR queue?

@bstansberry rebased

Just added an approval as well - just found some other JACC issues that need refactoring.

I am having second thoughts if we should actually be doing it like this, I believe the enable-jacc attribute would also be valid if JACC is provided by legacy security and not just via the resource in the Elytron subsystem.

I have a different issue I am looking at here:
https://issues.redhat.com/browse/WFLY-13615
These ApplicationSecurityDomain resources seem to be trying to solve something similar but I am not sure it is correct that the dependency is on the Elytron variant.  Instead I believe the actual JACC services should be depending on the Elytron or PicketBox variant depending on which one is installed instead.

@tadamski FYI this presently has a merge conflict.

@darranl, rebased and fixed

Thanks @tadamski once CI is completed we will get this in, I did try a local run with my own JACC refactoring and that also looked good.


parse vswhere output from text format due to i18n encoding problem.

This change addresses item #220
This changes
The following changes are proposed:

parse vswhere output from "text" format instead of JSON.parse()

The purpose of this change
As a premise, JSON.parse()  throws error if invalid character is found in input string.
Invalid character is almost in "Description" element.
but VsWhereItem only needs  "installationVersion", "installationPath", "displayName",
so "Description" element can be just ignored.
JSON.parse does not have "ignore invalid sequence" option, so I changed to use text format.
Other Notes/Information
this is little bit unstable way(because it depends on vswhere output).
Please tell me if there is more efficient and stable way.

Sorry for the month of silence. I'm now getting back into the flow of things and cleaning up the project.
I remember a much earlier issue involving the output locale when invoking VSWhere.exe. I made a comment somewhere in the vswhere repo asking about this and was told that setting a certain option would fix the JSON output to contain the properly encoded characters.

Actually, I made the PR(https://github.com/Microsoft/vswhere/pull/132) to solve the #220, but I haven't been able to give the persuasive explanation to merge the PR.
For accepting the PR, I must make good explanation. It may be needed to take more time.
So, I decide to make adhoc PR for this extension to use in non-ascii environment anyway.

Since this is out of date, I will close this PR.

@itn3000, we have a possible fix that will be available in beta5


BitMap-AdityaPV

Draw images through Blot
It is an implementation of BitMap images on BLOT.
This code enables you to draw images with blot.
Steps to use:

Open and upload your image to "Image_to_array_coverter.html" file
Copy the outputted array from the html page
paste your array in index.js as pixl

Samples

steve jobs

HC Logo

Very nice! And thank you for also demonstrating using some self-contained auxiliary scripts.
Congrats on earning your Blot.
You can order it here.


Multi Sync

Give the ability to create multiple setting sync on the same account, it will be helpful for the diversity of development extension from env to env

Do you mean multiple sync profiles?

@sandy081
yes, more profile to choose from when syncing the setting. This meant to be easy when pulling this setting back in a new editor.
My idea is to use it to separate my development env, because having, for example, all python packages and setting with java and frontend make the load on VSCode #105228 multiple profiles will help with that.

/duplicate
#92393


Optimizing TextEdit

The problem
egui's TextEdit becomes sluggish when it holds large amounts of text; probably, this is due to it rendering all of the text without doing anything clever to cull text which doesn't make it on to the screen (apologies if this is the wrong terminology, I'm not an expert in graphics programming). Even without doing anything clever, there seem to be some optimisation opportunities inside the code, but I wanted to seek some guidance on whether this is worth doing or not before committing to working on this.
At least, with my test program (see end, adapted from #2799), when there are 15 million characters inside the widget, it is noticably laggy to use (>1s per character insert, compiled with --release).
I've done some crude println! profiling with std::time::Instant::now() to find the hot loops, as I will detail below.
Related issues: #1196 #2799 #2906
Profiling
Here are the measured slow parts of the result of inserting one 'a' into the middle of the buffer (took around ~2s on release mode):
https://github.com/emilk/egui/blob/9478e50d012c5138551c38cbee16b07bc1fcf283/crates/epaint/src/text/text_layout.rs#L110-L136
Took ~0.5s to complete the loop, and reallocated paragraph.glyphs 23 times. I think with a call to Vec::reserve_exact the allocator pressure can be eliminated entirely, as it should be possible to determine how big each vector is supposed to be.
https://github.com/emilk/egui/blob/9478e50d012c5138551c38cbee16b07bc1fcf283/crates/epaint/src/text/text_layout.rs#L64
Took ~0.5s to complete.
https://github.com/emilk/egui/blob/9478e50d012c5138551c38cbee16b07bc1fcf283/crates/epaint/src/text/text_layout.rs#L480-L485
Took ~1s to complete.
Test program
use eframe::egui::{self, CentralPanel, TextEdit};

fn main() -> Result<(), eframe::Error> {
    let options = eframe::NativeOptions {
        ..Default::default()
    };

    eframe::run_native(
        "editor big file test",
        options,
        Box::new(|_cc| Box::<MyApp>::new(MyApp::new())),
    )
}

struct MyApp {
    text: String,
}

impl MyApp {
    fn new() -> Self {
        let bytes = (0..500000).flat_map(|_| (0u8..10));
        let string: String = bytes.map(|b| format!(" {b:02x}")).collect();
        MyApp { text: string }
    }
}

impl eframe::App for MyApp {
    fn update(&mut self, ctx: &egui::Context, _frame: &mut eframe::Frame) {
        CentralPanel::default().show(ctx, |ui| {
            let code_editor = TextEdit::multiline(&mut self.text)
                .code_editor()
                .desired_width(f32::INFINITY)
                .desired_rows(40);
            let _output = code_editor.show(ui);
        });
    }
}

As suggested in #2799, ideally there would be a way to only draw the visible text, similar to something like a ScrollArea::show_rows; I'm not sure if this would work for TextEdit as text can have variable-width characters, so the layout of the visible text depends on laying out all the text that comes before it at least. I think layout can end after it's finished the visible part though, but this optimisation may not be worth the complexity it adds.
I think this dependency ceases to exist if a monospace font is selected, which would actually work for my usecase (large-ish code editor), and then a show_rows method really could be exposed, but I'd seek design guidance before trying to implement something like that, so please consider this a feature request.

epaint memoizes text layout on a rather coarse level of a LayoutJob. This means that if you have a single 15MB string of text, epaint will lay it out once (slowly), then reuse it. When you edit it, it becomes a new string, and it will (slowly) be laid out again.
Each newline (\n) creates a new paragraph of text. A paragraph can span multiple rows if there is a wrap width (there usually is).
If we added another level of memoization at the paragraphs level, we could speed up text layout significantly, while still being immediate mode and without having to resort to exotic string types (like ropes). Each frame, we could split a string based on the newlines in it, then lay out each paragraph if needed (memoized), and the assemble the output by just appending the paragraphs after each other vertically. Editing a very long string would therefore be fast, as long as there are many newlines in the text.
This is not a perfect solution. If there are no newlines, we would still need to re-layout the full string (because editing the few characters may cause all subsequent rows to change!). Also, splitting the string on the newlines would still be an O(N) operation, but probably be several orders of magnitudes faster. But, it is a very simple solution that should work well for most use cases, and its easy to implement.
I suggest we add this to GalleyCache in crates/epaint/src/text/fonts.rs. GalleyCache::layout would first check if the full job was in cache, and if so return it. If not, it would check for newlines in the job. If there are none, lay it out, put it in the cache, and return (same as now). If there are newlines, split the job into a new job for each paragraph, then recurse on each paragraph. Finally, concatenate the Galleys of all the paragraphs into one big Galley, add it to the cache, and return it.

I think I can get started on implementing this.

I'm guessing this will need to respect the LayoutJob::break_on_newline field? as in, if that field is false, this optimization should be skipped?

Is something in work here?


Add env variable REAL_IP_PROXY

Needed to be able to differentiate between proxy_set_header vs real_ip in nginx/templates/includes/proxy_backend.conf.template
Rationale:
Documented in https://nginx.org/en/docs/http/ngx_http_realip_module.html#example
set_real_ip_from  <IP_ADDRESS>/24;
set_real_ip_from  <IP_ADDRESS>;
set_real_ip_from  2001:0db8::/32;
real_ip_header    X-Forwarded-For;
real_ip_recursive on;

Still, X-Real-IP is to be passed to the proxy, as $remote_addr is going to be overwritten by the realip module
proxy_set_header X-Real-Ip $remote_addr;

Thanks for the PR. I'm confused though: why does REAL_IP_HEADER not work for you? We made that configurable on purpose.

I needed something like this which was not possible with only one env var
set_real_ip_from  <IP_ADDRESS>/24;
set_real_ip_from  <IP_ADDRESS>;
set_real_ip_from  2001:0db8::/32;
real_ip_header    X-Forwarded-For;   # replaced from `$REAL_IP_HEADER`
real_ip_recursive on;

[..]

proxy_set_header X-Real-Ip $remote_addr;  #replaced from `$REAL_IP_PROXY`

I see, thanks.
Do you think it makes more sense the way you've written it now than to use a simple boolean? AFAICT, this line would always be the same, unless you wouldn't want to set the header.

[..] than to use a simple boolean? AFAICT, this line would always be the same, unless you wouldn't want to set the header.

I'm confused, sorry. Can you give me a code example or explain again?

Your suggestion in pseudo code:
REAL_IP_PROXY="$remote_addr"
...
replace("{{REAL_IP_PROXY}}", "proxy_set_header X-Real-Ip {{REAL_IP_PROXY}};")

My suggestion in pseudo code:
REAL_IP_PROXY_ENABLED="on"
...
if (REAL_IP_PROXY_ENABLED == "on") {
  print("proxy_set_header X-Real-Ip $remote_addr;")
}

My question is, whether it makes sense to give users control over the value of X-Real-Ip in this case. I suspect that the value will always be $remote_addr.

Your suggestion in pseudo code:
REAL_IP_PROXY="$remote_addr"
...
replace("{{REAL_IP_PROXY}}", "proxy_set_header X-Real-Ip {{REAL_IP_PROXY}};")

Afraid, I did non suggest that but rather
 replace("{{REAL_IP_PROXY}}", "proxy_set_header {{REAL_IP_PROXY}} $remote_addr;")

My question is, whether it makes sense to give users control over the value of X-Real-Ip in this case. I suspect that the value will always be $remote_addr.

With the current implementation, if you set REAL_IP_HEADER, both real_ip_header and proxy_set_header will be set. See line 5 and line 20 in https://github.com/coreruleset/modsecurity-crs-docker/blob/be5441fd00f78e2c2f32bdd845cb4daeec4c1b20/nginx/templates/includes/proxy_backend.conf.template
Real IP is a nginx module which overwrites $remote_addr ("client address" in nginx docu), where as proxy_set_header just instructs nginx to pass a header to the upstream node.
Honestly, for not adding complexity, I would stick to use env variables to only pass values, instead of a flag
May be REAL_IP_PROXY  is unfortunate in the naming, as it's an arbitrary name of a header which carries $remote_addr, but I haven't come up with anything better

Thanks for the clarification. Your changes make perfect sense.

@fzipi I propose to remove the environment variables from the Docker Hub documentation. Do you agree?

@fzipi I propose to remove the environment variables from the Docker Hub documentation. Do you agree?

@theseion I would not. This 25k limit on Docker Hub is a pity but, personally, I value seeing the configurables of an image while surfing around there. I'll try to shorten the text otherwise, if you agree

Sure, give it a try. The reason I made the proposal is that I suspect we may add more variables in the future and will run into the same issue over and over.

@theseion Please review the change in wording https://github.com/coreruleset/modsecurity-crs-docker/pull/147/commits/9017a55519f0023ac5b366ece35a29e2b94d928d

Thanks @ppp0, I've proposed a few adjustments. Would you mind also updating the same sentences in the full readme?

Please rebase onto the latest changes. And would you mind updating the same sentences in the full README?

Ooops, of course, thanks

Thanks!


Messing up properties in the new tool form

In GitLab by @KlausIllmayer on Oct 11, 2022, 16:10
🐛 Bug Report
Under specific circumstances it is not possible to choose from a drop down list (= vocabulary driven property) when trying to create a new tool/service. This happens only when from the prefilled property list some properties are deleted.
🤔 Expected Behavior
Choosing from a property drop down list should work.
😯 Current Behavior
The drop down list shows values, but it is not possible to choose one resp. you choose one, it shows up in the drop down input field but disappears if you go to the next field.
There is no error visible, also not in the console (tried it out on stage and on develop)
🧭 How to reproduce

Login on MP
Create Tool or service
Scroll down to property type "Intended audience"
Delete the two property types above the "Intended audience": delete first "Tool Family" and then "Mode of use"
Click into "Intended audience" and choose a value e.g. "Public"
Go to the next property field "See also", now the value in "Intended audience" disappears

This is the simplest way to reproduce it, but it must have to do with some general problem when using the "delete", e.g., the problem does not show up when only deleting "Mode of use". I discovered the problem when I was supporting entering a new tool. We deleted the properties where we didn't found a value and suddenly it was not possible to choose values from some of the property types. As there is no warning/error, it is very irritating and may result in people not entering data anymore.

should hopefully be fixed by https://github.com/SSHOC/sshoc-marketplace-frontend/commit/054ee1c918cbb4ee5113b5d863f43d6f6220141f