Making an async call in onSwiped

I have an async function I want to call from onSwiped but instead of being asynchronous it is blocking and the swipe animation is not finishing until the async function is done:
async onSwiped(indexCard){
    /* some asynchronous operations */
}

<CardStack onSwiped={(indexCard) => {
                this.onSwiped(indexCard)
              }}

NOTE: Inside the async function I am setting some states

This worked for me:
`
async onSwiped(indexCard){
/* some asynchronous operations */
}
<CardStack  onSwiped={this. onSwiped.bind(this)}
`

It works but the call is not asynchronous as I would expect, the animation is blocked until onSwiped() is finished


Add message to problems

Add problem message to problems. This allows testing the problem message, but is mainly intended to make reporting of unexpected problems more informative.
While I was modifying the code, I also refactored it to be a little more readable.

thanks! I ran with your refactor a little further - let me know if you have any questions about it

I tweaked your changes a bit to cope with a potential error case (that was there before), and it turned into a bit of a relay race.
Apart from further refactoring, I added tests and the ability to match a problem with severity. I did not add matching problems based on message as it seemed prone to breaking and unhelpful. The changes to matching might be better in a separate PR, especially as I want to change matches_problem into an expected/actual format.


Example with Time Series Data ?

Is the library suitable for time series data?

Hi Mustafa,
thanks for raising this issue! Currently we do not explicitly support a temporal framework. Nevertheless, if you can split time series data into training, validation and test sets, there is nothing blocking you from using Fortuna's algorithms to quantify the uncertainty of your model predictions.
Perhaps you could give me more info about the type of application that you have in mind? You are not the first customer asking about time series and forecasting. If several users ask for the same use case, we may consider trying to support it explicitly, or provide some examples.

I was just experimenting with the library for time-series forecasting.
The Validation and test sets need to keep the temporal structure (that's user's design). But I cannot understand how the package will work or is working in such exercise.

Methods for this, in particular in the space of conformal prediction, may be added soon. Currently they are not yet supported.

Looking forward to it. Please update the community, I think there is a lot of interest on this area.

Hi Moustafa,
we are starting to support uncertainty quantification methods for time series data. For now we included EnbPI, a conformal prediction method for time series regression.
Please find an example here: https://aws-fortuna.readthedocs.io/en/latest/examples/enbpi_ts_regression.html

Great, work. I will have a look. Thanks


New post: "Four ways to escape a cake"

For publication on March 1.
(There is a tut patch to this, similar in spirit to #145; lacking output, it is more difficult to review.)

I think you're making a bit of a meal of this. Rather than trying to pull everything out of the cake I would "extend" the cake and push the operations in, right up until the end.
object CakeDemo {
  final case class LittleUniverse() {
    val haystack: Haystack = Haystack()

    final case class Haystack() {
      def init: Needle = Needle()
      def iter(n: Needle): Needle = n
    }

    final case class Needle()
  }

  class WithUniverse[U <: LittleUniverse](val u: U) {
    import u._

    def stepTwice(n: Needle): Needle =
      haystack.iter(haystack.iter(n))

    def run: Needle =
      stepTwice(haystack.init)
  }

  object WithUniverse {
    // Workaround for SI-5103
    def apply[U <: LittleUniverse](u: U): WithUniverse[u.type] = new WithUniverse(u)
  }

  final val lu: LittleUniverse = LittleUniverse()

  val res: lu.Needle = WithUniverse(lu).run
}

I also see the occurrence of a type projection as a type smell ... if you use a '#' you are almost always asking for trouble.

@milessabin Since there are many universe-polymorphic functions that do not actually need the universe to operate, just its type-level reflection, my goal was to find ways to do that. This oft-unused universe argument needing to be passed everywhere looks to me as an albatross on the signatures of those pieces of code. I want to escape cakes, not get mired in the outer layers :)
I've also written about the dangers of type projection in a prior post.

@S11001001 perhaps so, but I suspect that any "pulling out" solution can be rewritten more simply in  "pushing in" form. Your mission, if you choose to accept it, is to find a counterexample to this claim.

@milessabin Sure, I'll accept that challenge.
// library.scala
import scala.reflect.api.Types

object FancyLibrary {
  def monoIncreasing[U <: Types with Singleton](xs: List[U#Type]): Boolean =
    xs match {
      case fst :: snd :: tl =>
        fst <:< snd && monoIncreasing(snd :: tl)
      case _ => true
    }
}

// app.scala
import FancyLibrary._
import scala.reflect.runtime.universe.typeOf

object Blah {
  def one = monoIncreasing(List(typeOf[String],
    typeOf[CharSequence], typeOf[AnyRef]))
  // evals to true

  def two = monoIncreasing(List(typeOf[String], typeOf[Int]))
  // evals to false
}

// tested with TLS 2.12.1, -Yliteral-types

Setting that aside, there are two things I'm more interested in.
 Whether or not I define an abstraction over it, it remains a property of the cake itself, not fetchIter et al, that the expression h.iter has a type quantified by a potentially existential value, and this is belied by the surface syntactic simplicity. One of the goals of this article is to show what lies beneath.
Second: I wish to write fully generalized types for my definitions, for the sake of being honest with their callers. If my library function definition demands an argument that it doesn't use, it isn't being completely honest. If Scala makes that ideal inconvenient to live up to, well, better that than if Scala made it impossible.


Should anonymous classes have a name property?

In some versions of Node, an anonymous class has a name property defined as '', in others it doesn't.
This expression:
!!Object.getOwnPropertyDescriptor( class {}, 'name' );

evaluates as:

Node v12.0.0: false
Node v12.15.0: false
Node v12.16.0: true
Node v12.22.4: true
Node v14.17.4: false
Node v16.6.1: true

Have not investigated behavior of earlier versions of Node in v14 and v16 release lines.
I am not sure which is correct as per the spec and therefore how cases like this should be serialized:
const C = (0, class {});
delete C.name;
export default C;

Resolved in e7457e500c75495d29b4886602d370b62e26e46f.


Builder API Compatability with Distributed Validators - Validator Registration

Distributed Validators Require Signed Contents To Be The Same - ValidatorRegistrationV1
The current implementation of the validator registration isn't compatible with a distributed validator
For distributed validators it's important that the signed contents are the same across all "co-validators"
Teku currently uses timeProvider.getTimeInSeconds() for the Timestamp in ValidatorRegistrationV1, time.now in milliseconds are likely to never match

The simplest solution would be an --X param that effectively hardcodes the timestamp, this could be done via an actual timestamp, a slot number or an epoch number, in this situation it's up to the co-validators to co-ordinate to ensure they all have the same config set for "timestamp"
Since Teku uses the first signature (with the hardcoded timestamp) for any subsequent re-registrations the distributed validator will simply need to update their registration config which would include timestamp to register with new information on a relay

see here for discussion in discord https://discord.com/channels/697535391594446898/697539289042649190/994236320799002705
cc @tbenr

A hardcoded flag with a "random" timestamp might be the easiest solution to implement, but it moves the complexity of co-ordinating and configuring to operators of the distributed validator.
Since period registrations are done at the start of every epoch, the epoch start time could also be used. This reduces operation and coordination overhead at the cost of increased implementation complexity and one additional signature per validator per epoch.


refactor listener_builder_test

While debugging something else, it took me a long time to see what the listener builder test was actually testing. I reduced some duplication so it'll take me less time next time.
[ ] Configuration Infrastructure
[ ] Docs
[ ] Installation
[x] Networking
[ ] Performance and Scalability
[ ] Policies and Telemetry
[ ] Security
[ ] Test and Release
[ ] User Experience
[ ] Developer Infrastructure

@utako: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

lint_istio
3c72705f5da86b50751d0cc726f814c2f9b027db
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@utako: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

lint_istio
3c72705f5da86b50751d0cc726f814c2f9b027db
link
/test lint_istio

integ-mixer-k8s-tests_istio
3c72705f5da86b50751d0cc726f814c2f9b027db
link
/test integ-mixer-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test lint_istio

@utako: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-mixer-k8s-tests_istio
3c72705f5da86b50751d0cc726f814c2f9b027db
link
/test integ-mixer-k8s-tests_istio

lint_istio
3c72705f5da86b50751d0cc726f814c2f9b027db
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@utako: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-mixer-k8s-tests_istio
3c72705f5da86b50751d0cc726f814c2f9b027db
link
/test integ-mixer-k8s-tests_istio

lint_istio
ac596014e69f10c684e77fb89b4c42e43303aab9
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@utako: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-mixer-k8s-tests_istio
3c72705f5da86b50751d0cc726f814c2f9b027db
link
/test integ-mixer-k8s-tests_istio

lint_istio
ac596014e69f10c684e77fb89b4c42e43303aab9
link
/test lint_istio

unit-tests_istio
ac596014e69f10c684e77fb89b4c42e43303aab9
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@utako: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-mixer-k8s-tests_istio
3c72705f5da86b50751d0cc726f814c2f9b027db
link
/test integ-mixer-k8s-tests_istio

lint_istio
ac596014e69f10c684e77fb89b4c42e43303aab9
link
/test lint_istio

unit-tests_istio
ac596014e69f10c684e77fb89b4c42e43303aab9
link
/test unit-tests_istio

racetest_istio
ac596014e69f10c684e77fb89b4c42e43303aab9
link
/test racetest_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@utako: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

integ-mixer-k8s-tests_istio
3c72705f5da86b50751d0cc726f814c2f9b027db
link
/test integ-mixer-k8s-tests_istio

lint_istio
ac596014e69f10c684e77fb89b4c42e43303aab9
link
/test lint_istio

unit-tests_istio
ac596014e69f10c684e77fb89b4c42e43303aab9
link
/test unit-tests_istio

racetest_istio
ac596014e69f10c684e77fb89b4c42e43303aab9
link
/test racetest_istio

codecov_istio
ac596014e69f10c684e77fb89b4c42e43303aab9
link
/test codecov_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@utako: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

lint_istio
ac596014e69f10c684e77fb89b4c42e43303aab9
link
/test lint_istio

unit-tests_istio
ac596014e69f10c684e77fb89b4c42e43303aab9
link
/test unit-tests_istio

racetest_istio
ac596014e69f10c684e77fb89b4c42e43303aab9
link
/test racetest_istio

codecov_istio
ac596014e69f10c684e77fb89b4c42e43303aab9
link
/test codecov_istio

e2e-dashboard_istio
fc76a1dd1d98ed8dfdf430b0d2b764115e8f095f
link
/test e2e-dashboard_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/test e2e-dashboard_istio

@utako: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

pilot-multicluster-e2e_istio
fc76a1dd1d98ed8dfdf430b0d2b764115e8f095f
link
/test pilot-multicluster-e2e_istio

e2e-simpleTests-cni_istio
fc76a1dd1d98ed8dfdf430b0d2b764115e8f095f
link
/test e2e-simpleTests-cni_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@utako: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

pilot-multicluster-e2e_istio
fc76a1dd1d98ed8dfdf430b0d2b764115e8f095f
link
/test pilot-multicluster-e2e_istio

e2e-simpleTests-cni_istio
fc76a1dd1d98ed8dfdf430b0d2b764115e8f095f
link
/test e2e-simpleTests-cni_istio

lintmodern_istio
fc76a1dd1d98ed8dfdf430b0d2b764115e8f095f
link
/test lintmodern_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Use the workspace inheritance

Use the workspace inheritance introduced in rust 1.64.
It allows us to define the version of meilisearch once in the main Cargo.toml and let all the other Cargo.toml uses this version.
@curquiza I added you as a reviewer because I had to patch some CI scripts
And @Kerollmops, I had to bump the cargo_toml crates because our version was getting old and didn't support the feature yet.
Also, in another PR, I would like to unify some of our dependencies to ensure we always stay in sync between all our crates.

Hey @Kerollmops,

Could you also change the default-run = "meilisearch" rule in the workspace TOML, please? 😊

I wanted to do that very hard, but default-run is not supported at the workspace level 😔
The other option was to use default-members, which is supported.
But that applies to every command, which means when we run the test, by default, it'll only run the tests of the meilisearch crate...


feat: sets javadoc badge

Closes #26

@rultor merge

@rultor merge

@baudoliver7 OK, I'll try to merge now. You can check the progress of the merge here

@rultor merge

@baudoliver7 Done! FYI, the full log is here (took me 2min)

@rultor release 0.3.0


fix: polite => assertive

https://vue-a11y.com/posts/vue-announcer/#meet-vue-announcer

@marcus-herrmann please check PR!

@marcus-herrmann please check PR!

@yamanoku Thank you for catching that!

@yamanoku Thank you for catching that!


EntityLinker and HPO ID

Hello,
I've tried to test NER using your latest implementation of HPO terms, but certainly missed a point.
Based on your UMLS example
I've put
linker = EntityLinker(resolve_abbreviations=True, name="hpo")
nlp.add_pipe(linker)
doc = nlp("a text extracted from some eHR with HPO terms, for instance progressive microcephaly")
but instead having
print(linker.kb.cui_to_entity[umls_ent[0]])
I would like to obtain HPO Id. (and not CUID)
So i've tried something like
for hpo_ent in entity._.kb_ents:  print(linker.kb.hpo_to_entity[hpo_ent[0]])
But obtain:
AttributeError: 'HumanPhenotypeOntology' object has no attribute 'hpo_to_entity'
(if I kept linker.kb.cui_to_entity the code seems to run, but obviously get CUID as output...)
Probably I'm not in the right direction... any reference documentation regarding NER with HPO using scispacy ?
Best regards

Hi @pixelicus, is having the HPO ids a hard requirement for you? I don't think we're going to get to that in the short term - mostly because i'm not entirely sure how to extract this cross linking info out of UMLS. The easiest thing to do in the short term would be to download the HPO and create a reverse mapping (i.e from UMLS ids -> HPO ids) - e.g you can see here that the UMLS id is in the "cross reference" section: https://hpo.jax.org/app/browse/term/HP:0001631

Thanks for the answer.
Yep, in our case, HPO entity recognition (with HP ids) is needed. We've tried other scripts to do so but I liked very much the idea of using spacy and scispacy, mostly because already used to get UMLs mappings.
Reading https://github.com/allenai/scispacy#entitylinker
"hpo: Links to the Human Phenotype Ontology. The Human Phenotype Ontology contains 16k concepts focused on phenotypic abnormalities encountered in human disease."
thought it was possible to obtain such IDs.
But at least, if I can extract precise HPO terms, yes it will be possible to get Id from HPO itself.
Nevertheless, I think I'm still confuse about how to exploit properly the linker, I guess I need to read more about it. Any available documentation, links or projects already known. Kind of "entitylinker for dummies" ?
Best regards,

the JSON file only has UMLS CUIs, so getting HPO will take an extra step.
https://github.com/allenai/scispacy/blob/e9f0daeae9a76c644166f852f1d8a101e77d9593/scispacy/linking_utils.py#L113
Do wish these JSON files had extra item of HPO ids
The only way to get the HPO terms is either use UMLS to crosswalk or simply use the HPO ontology files to extract the HPO-UMLS CUI mappings.

@pixelicus Just wanted to get an idea about the difference between umls linker vs hpo linker in scispacy, as both output umls cui terms.


run multiple CodeQL languages in parallel

What does this PR do?
The CodeQL action is currently the bottleneck of merge queue branches. If we don't want to disable it there (which is another option clearly), this PR moves it to a parallel job, running multiple languages in parallel. The result is an action that runs in ~20 min, instead of 25-30 min currently.
Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

/merge


[Bug]: Openai compatible server with HuggingFaceTB/SmolVLM-Instruct producing smaller outputs than expected

Your current environment

The output of `python collect_env.py`
PyTorch version: 2.5.1+cu124
Is debug build: False
CUDA used to build PyTorch: 12.4
ROCM used to build PyTorch: N/A

OS: Ubuntu 23.10 (x86_64)
GCC version: (Ubuntu 13.2.0-4ubuntu3) 13.2.0
Clang version: Could not collect
CMake version: Could not collect
Libc version: glibc-2.38

Python version: 3.10.15 (main, Oct  3 2024, 07:27:34) [GCC 11.2.0] (64-bit runtime)
Python platform: Linux-6.5.0-44-generic-x86_64-with-glibc2.38
Is CUDA available: True
CUDA runtime version: 12.0.140
CUDA_MODULE_LOADING set to: LAZY
GPU models and configuration:
GPU 0: NVIDIA GeForce RTX 4090
GPU 1: NVIDIA GeForce RTX 4090
GPU 2: NVIDIA GeForce RTX 4090
GPU 3: NVIDIA GeForce RTX 4090

Nvidia driver version: 535.171.04
cuDNN version: Could not collect
HIP runtime version: N/A
MIOpen runtime version: N/A
Is XNNPACK available: True

CPU:
Architecture:                       x86_64
CPU op-mode(s):                     32-bit, 64-bit
Address sizes:                      48 bits physical, 48 bits virtual
Byte Order:                         Little Endian
CPU(s):                             32
On-line CPU(s) list:                0-31
Vendor ID:                          AuthenticAMD
Model name:                         AMD Ryzen Threadripper PRO 5955WX 16-Cores
CPU family:                         25
Model:                              8
Thread(s) per core:                 2
Core(s) per socket:                 16
Socket(s):                          1
Stepping:                           2
Frequency boost:                    enabled
CPU(s) scaling MHz:                 47%
CPU max MHz:                        7031.2500
CPU min MHz:                        1800.0000
BogoMIPS:                           7985.24
Flags:                              fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf rapl pni pclmulqdq monitor ssse3 fma cx16 pcid sse4_1 sse4_2 x2apic movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_llc mwaitx cpb cat_l3 cdp_l3 invpcid_single hw_pstate ssbd mba ibrs ibpb stibp vmmcall fsgsbase bmi1 avx2 smep bmi2 erms invpcid cqm rdt_a rdseed adx smap clflushopt clwb sha_ni xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local clzero irperf xsaveerptr rdpru wbnoinvd amd_ppin brs arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold avic v_vmsave_vmload vgif v_spec_ctrl umip pku ospke vaes vpclmulqdq rdpid overflow_recov succor smca fsrm
Virtualization:                     AMD-V
L1d cache:                          512 KiB (16 instances)
L1i cache:                          512 KiB (16 instances)
L2 cache:                           8 MiB (16 instances)
L3 cache:                           64 MiB (2 instances)
NUMA node(s):                       1
NUMA node0 CPU(s):                  0-31
Vulnerability Gather data sampling: Not affected
Vulnerability Itlb multihit:        Not affected
Vulnerability L1tf:                 Not affected
Vulnerability Mds:                  Not affected
Vulnerability Meltdown:             Not affected
Vulnerability Mmio stale data:      Not affected
Vulnerability Retbleed:             Not affected
Vulnerability Spec rstack overflow: Vulnerable: Safe RET, no microcode
Vulnerability Spec store bypass:    Mitigation; Speculative Store Bypass disabled via prctl
Vulnerability Spectre v1:           Mitigation; usercopy/swapgs barriers and __user pointer sanitization
Vulnerability Spectre v2:           Mitigation; Retpolines; IBPB conditional; IBRS_FW; STIBP always-on; RSB filling; PBRSB-eIBRS Not affected; BHI Not affected
Vulnerability Srbds:                Not affected
Vulnerability Tsx async abort:      Not affected

Versions of relevant libraries:
[pip3] numpy==1.26.4
[pip3] nvidia-cublas-cu12==<IP_ADDRESS>
[pip3] nvidia-cuda-cupti-cu12==12.4.127
[pip3] nvidia-cuda-nvrtc-cu12==12.4.127
[pip3] nvidia-cuda-runtime-cu12==12.4.127
[pip3] nvidia-cudnn-cu12==<IP_ADDRESS>
[pip3] nvidia-cufft-cu12==<IP_ADDRESS>
[pip3] nvidia-curand-cu12==<IP_ADDRESS>
[pip3] nvidia-cusolver-cu12==<IP_ADDRESS>
[pip3] nvidia-cusparse-cu12==<IP_ADDRESS>
[pip3] nvidia-ml-py==12.560.30
[pip3] nvidia-nccl-cu12==2.21.5
[pip3] nvidia-nvjitlink-cu12==12.4.127
[pip3] nvidia-nvtx-cu12==12.4.127
[pip3] pyzmq==26.2.0
[pip3] torch==2.5.1
[pip3] torchvision==0.20.1
[pip3] transformers==4.46.3
[pip3] triton==3.1.0
[conda] numpy                     1.26.4                   pypi_0    pypi
[conda] nvidia-cublas-cu12        <IP_ADDRESS>                 pypi_0    pypi
[conda] nvidia-cuda-cupti-cu12    12.4.127                 pypi_0    pypi
[conda] nvidia-cuda-nvrtc-cu12    12.4.127                 pypi_0    pypi
[conda] nvidia-cuda-runtime-cu12  12.4.127                 pypi_0    pypi
[conda] nvidia-cudnn-cu12         <IP_ADDRESS>                 pypi_0    pypi
[conda] nvidia-cufft-cu12         <IP_ADDRESS>                 pypi_0    pypi
[conda] nvidia-curand-cu12        <IP_ADDRESS>               pypi_0    pypi
[conda] nvidia-cusolver-cu12      <IP_ADDRESS>                 pypi_0    pypi
[conda] nvidia-cusparse-cu12      <IP_ADDRESS>               pypi_0    pypi
[conda] nvidia-ml-py              12.560.30                pypi_0    pypi
[conda] nvidia-nccl-cu12          2.21.5                   pypi_0    pypi
[conda] nvidia-nvjitlink-cu12     12.4.127                 pypi_0    pypi
[conda] nvidia-nvtx-cu12          12.4.127                 pypi_0    pypi
[conda] pyzmq                     26.2.0                   pypi_0    pypi
[conda] torch                     2.5.1                    pypi_0    pypi
[conda] torchvision               0.20.1                   pypi_0    pypi
[conda] transformers              4.46.3                   pypi_0    pypi
[conda] triton                    3.1.0                    pypi_0    pypi
ROCM Version: Could not collect
Neuron SDK Version: N/A
vLLM Version: 0.6.4.post1
vLLM Build Flags:
CUDA Archs: Not Set; ROCm: Disabled; Neuron: Disabled
GPU Topology:
GPU0	GPU1	GPU2	GPU3	CPU Affinity	NUMA Affinity	GPU NUMA ID
GPU0	 X 	SYS	SYS	SYS	0-31	0		N/A
GPU1	SYS	 X 	SYS	SYS	0-31	0		N/A
GPU2	SYS	SYS	 X 	SYS	0-31	0		N/A
GPU3	SYS	SYS	SYS	 X 	0-31	0		N/A

Legend:

  X    = Self
  SYS  = Connection traversing PCIe as well as the SMP interconnect between NUMA nodes (e.g., QPI/UPI)
  NODE = Connection traversing PCIe as well as the interconnect between PCIe Host Bridges within a NUMA node
  PHB  = Connection traversing PCIe as well as a PCIe Host Bridge (typically the CPU)
  PXB  = Connection traversing multiple PCIe bridges (without traversing the PCIe Host Bridge)
  PIX  = Connection traversing at most a single PCIe bridge
  NV#  = Connection traversing a bonded set of # NVLinks

LD_LIBRARY_PATH=/home/rendernet/.conda/envs/vllm/lib/python3.10/site-packages/cv2/../../lib64:
CUDA_MODULE_LOADING=LAZY

Model Input Dumps
No response
🐛 Describe the bug
The openai compatible server with smovlm producing smaller prompt outputs than directly using smolvlm.
Smolvlm code:
from transformers import AutoProcessor, AutoModelForVision2Seq
import torch
from PIL import Image
from transformers.image_utils import load_image

DEVICE = "cuda" if torch.cuda.is_available() else "cpu"

processor = AutoProcessor.from_pretrained("HuggingFaceTB/SmolVLM-Instruct")
model = AutoModelForVision2Seq.from_pretrained("HuggingFaceTB/SmolVLM-Instruct",
                                                torch_dtype=torch.bfloat16,
                                                _attn_implementation="flash_attention_2" if DEVICE == "cuda" else "eager").to(DEVICE)

# Load images
image1 = load_image("https://huggingface.co/spaces/HuggingFaceTB/SmolVLM/resolve/main/example_images/rococo.jpg")

detailed_prompt = """You are an expert image captioner. Please provide a detailed description of the image that covers:

Main subjects and their characteristics
Background elements and setting
Colors, lighting, and atmosphere
Notable details or unique features
Spatial relationships between elements
Overall mood or impression
Your description should be at least 100 words long and cover all these aspects comprehensively."""

# Create input messages
messages = [
    {
        "role": "user",
        "content": [
            {"type": "image"},
            {"type": "text", "text": detailed_prompt}
        ]
    },
]

# Prepare inputs
prompt = processor.apply_chat_template(messages, add_generation_prompt=True)
inputs = processor(text=prompt, images=[image1], return_tensors="pt")
inputs = inputs.to(DEVICE)

generated_ids = model.generate(**inputs, max_new_tokens=500)
generated_texts = processor.batch_decode(
    generated_ids,
    skip_special_tokens=True,
)

print(generated_texts[0])

Openai compatible code:
import base64
import argparse
from openai import OpenAI

def encode_image(image_path):
    with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode('utf-8')

def main():
    parser = argparse.ArgumentParser(description='Image captioning using OpenAI API')
    parser.add_argument('--image_url', help='URL of the image to caption')
    parser.add_argument('--api-key', default="abc", help='OpenAI API key')
    parser.add_argument('--api-base', default="http://localhost:8000/v1", help='OpenAI API base URL')
    args = parser.parse_args()

    client = OpenAI(
        api_key=args.api_key,
        base_url=args.api_base,
    )

    detailed_prompt = """You are an expert image captioner. Please provide a detailed description of the image that covers:
1. Main subjects and their characteristics
2. Background elements and setting
3. Colors, lighting, and atmosphere
4. Notable details or unique features
5. Spatial relationships between elements
6. Overall mood or impression

Your description should be at least 100 words long and cover all these aspects comprehensively."""

    try:
        chat_response = client.chat.completions.create(
            model="HuggingFaceTB/SmolVLM-Instruct",
            temperature=0.4,
            top_p=0.8,
            frequency_penalty=1.2,
            messages=[{
                "role": "user",
                "content": [
                    {"type": "text", "text": detailed_prompt },
                    {"type": "image_url", "image_url": {"url": args.image_url}},
                ],
            }],
        )
        print("Caption:", chat_response.choices[0].message.content)
    except Exception as e:
        print(f"Error type: {type(e)}")
        print(f"Error message: {str(e)}")

if __name__ == "__main__":
    main()

Example:

Output produced by smolvlm snippet:
The background of the image is a dense forest, with green trees and plants. The trees are tall and have thick trunks, with branches extending upwards and outwards. The leaves are lush and green, indicating that it is either early spring or late summer. The sunlight is filtering through the trees, creating a dappled pattern on the ground.

The elf is standing in a forest clearing, surrounded by trees. The ground is covered with a layer of leaves and moss, indicating that it is a well-maintained area. The forest is dense, with a variety of plants and trees, suggesting that it is a natural, untouched forest.

The elf is holding a bow and arrow, which are both made of wood. The bow is long and slender, with a curved shape. The arrow is made of wood and has a pointed tip. The elf is aiming at a target, which is not visible in the image.

The elf is standing in a relaxed pose, with her feet shoulder-width apart. Her posture is confident and poised, suggesting that she is ready for action. Her expression is serious and focused, indicating that she is concentrating on her task.

The image has a serene and natural atmosphere, with the forest providing a backdrop that is both beautiful and mysterious. The lighting is soft and diffused, creating a sense of calm and tranquility. The overall impression is one of peace and harmony, with the elf's presence adding a touch of magic and wonder to the scene.

In summary, the image depicts a female elf in a forest setting, dressed in a green dress and holding a bow and arrow. The elf is standing in a forest clearing, surrounded by trees and plants.

Output produced by open-ai compatible server:
An elf woman holding a bow and arrow and an arrow nocked as she stands in a forest.

Before submitting a new issue...

[X] Make sure you already searched for relevant issues, and asked the chatbot living at the bottom right corner of the documentation page, which can answer lots of frequently asked questions.

The prompt format isn't consistent for the two models. Can you also use LLM.chat method for vLLM to eliminate the effect of online serving?

Thanks , making it similar to smolvlm kind worked.
Regarding the LLM.chat part, we are looking at using openai-compatible servers for all inference as a standard. That's the reason , we are working with different models using vllm and testing out.

I understand. For debugging purposes though, it would be better to use LLM.chat so that we can distinguish between problems in vLLM Core and those of the server.

In any case, glad that the problem is solved now!


Decentralize to protect: a DAO for Berty

We've been thinking about ways to protect Berty as a whole: not only people's communications secured by our protocol, not only the code itself, but also the very people in charge of building it. A holistic approach of security should take into account social and political vectors of attacks as well as tech security.
Here are our first thoughts. We would love to get inputs and comments from the community! Eventually, a DAO for Berty would amount to granting it with more power over the project, hence it would be good to "DAOify" Berty with your help from the onset :)

Berty’s mission is to create a protocol and applications enabling secure p2p communication between people, including in hostile political situations.
The provision of such tools contravenes the interests and policies of entities wishing to control communication between people for any reason: fight against crime and terrorism, control or eradication of political opposition, policy of mass surveillance, monetization of personal data, etc.
Consequently, it is to be expected that some of these entities will attempt to destroy, censor or take control of the tools offered by Berty (recent examples: following the request of the Spanish government, Github removes the Democratic Tsunami application from its servers; Uniswap blocks access to its application to navigation from a dozen countries, probably following pressure from the US government).
As open source code, the protocol itself and the applications provide a base level of resilience, since anyone can check the code and fork it. But effective protection must extend not only to these technical objects, but to the means of producing and disseminating them, as well as to the key people who make them available to the public.
We posit that such protection would be more effective when relying on decentralization and transparency, rather than on hiding and secrecy. Decentralization is understood here both at the level of the technical infrastructure and in terms of the organizational processes ruling maintenance and release activities.
A decentralized infrastructure ensures the integrity and the availability of storage services (for example, the source code of the protocol) and computing services (for example, the build of a mobile application), by avoiding single points of failure - we use the term technical decentralization in the rest of this note to refer to such services.
Organizational decentralization deters attempts to attack a small team in charge of maintenance and release activities, by leveraging a much larger, open group of people, and allowing anonymity - we use the term political decentralization to designate such organizational mechanics.
Political decentralization
The goal is to enable the community to operate the release of new versions of Berty's software, especially the release of versions of the end-user application. In the event of the core team being incapacitated to release, or pressured to alter the code in a way that would be detrimental to the privacy or the security of its users, the community would be able to step up and solve the situation. Eventually, the DAO-powered community may own the process, with core team(s) being seen as providers to the DAO.
Release cycle process

code submission (release candidate, not PR)
pre-validation period (code audit)
deliberation period
voting process
release
independent verification

Notes:

we need to keep things agile: merging PRs is done by the core team or anyone who gets the permission from the core team (permissioning doesn’t need to be formal)
we need to distinguish between frequent routine upgrades, urgent fixes, and major upgrades
we need to run the code review process in a somewhat async mode, so that reviews can happen anytime, not only when a new release is being prepared (especially with minor releases)

Actors

core team
council (tech experts + freedom fighters)
review teams
users
root key holders (in case of gradual decentralization)

Notes:
Compared to the usual way to manage and release a software product, the council is the new element here. Its purpose is to protect both the apps and the core team by owning key decisions regarding Berty's software. While a core team is made up of a small number of individuals that can be identified and targeted by hostile forces, the council can be broader and has no operational responsibilities. It acts as a decentralized group of people that can be trusted to decide what's best for the project and its users, because it can hardly collude and has no interest to do so, and it's globally spread so that it escapes local attempts of censoring or pressuring its members.
We are considering both recognized tech experts and freedom fighters as members of the council.
DAO Processes

RC submitted by core team
review/audit teams appointed by council
actual release voted by council
automated build and deployment triggered by votes
core team/council membership controlled by web of trust + on-chain voting

Technical decentralization
The goal of technical decentralization is to automate to the fullest extent the decisions made by the DAO, especially regarding code releases. We need to make sure that decentralized decisions can be actually enforced and protected from censorship and tampering by a state or a large technology company.
Components

IPFS: decentralizing data storage: source code, builds, documentation, Web site
Radicle/Pando/ditCraft: decentralizing VCS
Decentralized code collaboration: Radicle
ENS: decentralizing domains: berty.eth (reserved)
Decentralized courts: delegating operational authority for routine/urgent fixes (Aragon Agreement+Court, Kleros)
Public blockchain (Ethereum, Tezos, Bitcoin…) : decentralized authentication: signing releases, audits…
Public blockchain II: smart contracts for voting, onboarding members, etc (DAO)
Public blockchain III (or other distributed computing method): decentralized control over off-chain processing such as building executables (iExec, Golem)

Notes:
Automation of the release process using decentralized technology seems doable, except with one critical step: mobile app store submission. It's not surprising, since app stores are themselves centralized. On Android, an app can be made available independently of Google Play, but it's not possible on iOS. We might have to live with this single point of failure for now, and ultimately rely on parallel implementations and submissions to reduce the attack surface.
What now?
This is a call for inputs from the community. If you have opinions, questions, comments, suggestions, we want to hear from you!
We would be especially grateful to collect inputs on:
The Why —> the relevance of the proposition

is decentralized governance a good way to protect people building and maintaining the app?
are there other ways to make the project and the extended team protected from social and political attacks?
do you think that having Berty’s code released under an open source license is enough protect the whole project and its core contributors?
…

The What —> the scope of the proposition

should we aim as well for financial independence, through some sort of crowdfunding and decentralized treasury management?
should we focus on the release process of the mobile apps rather than on the underlying protocol?
at this point we focus on the release process rather than using a DAO for building the code (like for instance, granting repo permissions to devs) - is that right?
…

The How —> methods and tools

do you see useful pieces for automating a decentralized release process that we may have missed?
do you have ideas of how to address the SPOF issue of single, named users managing the app store accounts?
we are considering a Web of trust approach for onboarding members on the council, what do you think about it?
….

The questions above are just examples. We are looking forward to any feedback of yours :)

Thank you for introducing this topic for the community!
It would be great if the community would gradually take up the topic and come up with solutions. I'll think about it and would be happy to get involved in upcoming weeks :)

Thank you guys for these insights: I dig this! Here are a few of my views on "The What":
The What —> the scope of the proposition
should we aim as well for financial independence, through some sort of crowdfunding and decentralized treasury management?
A big yes! Especially in the germ. Today Berty's core development team is relying upon very few patrons' money (one? :)). Since the business model is not yet defined, the company's vision might not even choose one. What would happen if this generous patron decides to stop financing the Berty project because he receives pressures from his government? Will it be the end of the adventure? Berty's mobile application & protocol development decentralization, pass-through a decentralized funding process. It's particularly true in the debut until the developer community has not reached a critical size. How should this crowdfunding be implemented? I am sure @PhilH , will guide the team through it excellently ;)
should we focus on the release process of the mobile apps rather than on the underlying protocol?
My intuition tells me that the Mobile App will strive for a more significant technical and non-technical community in the debut than the core protocol. Hence, I feel that Berty is answering a massive problem here: how can people communicate with their peers in complete freedom? Therefore, if the UX meets expectations, Berty's Mobile App can swiftly gather more developers around the project developers will use daily than "another P2P protocol". Sorry for sounding foolish, but how many Open-Source P2P protocols can you find on Github? A lot. How many of them remain unknown? A lot and often decorrelated from their purpose & code quality.
In the inception, what will make Berty protocol visible from other developers to use it? A widely use Mobile App that runs on it: Berty Mobile App :)
at this point we focus on the release process rather than using a DAO for building the code (like for instance, granting repo permissions to devs) - is that right?

Being one of your top fans, I hope I could play with the Berty Mobile App beta soon!

@Lalolo13 Thanks a lot for your comments!

(crowdfunding and treasury management) A big yes!

Definitely interesting to see such an enthusiastic support of a crowdfunding option :)

Since the business model is not yet defined

As a reminder, Berty is a non-profit. There's no business model right now. Both the protocol and the app will be delivered and used for free. Since the tech is fully p2p, there's no real need for a server infrastructure that would be both a cost and an opportunity to create a business model. In the future, apps (other than the reference implementation of the mobile, consumer chat app) might use the protocol AND have a business model, but there's no plan to offer paying licenses to developers of such apps at this stage.
Hence if crowdfunding and treasury management are to be added to the DAO, it will be either because of a public good funding approach (see Common Stack), or as the consequence of a change regarding this non-commercial policy (unlikely).

My intuition tells me that the Mobile App will strive for a more significant technical and non-technical community in the debut than the core protocol

I shouldn't speak for him but I understand this is also the opinion of @moul (for slightly different reasons, but it amounts to the same result). I still have mixed feelings about this point. At the end of the day, the protocol might be immensely more valuable than a single app. But it's good to get different views, so thank you! 🙏

do you think that having Berty’s code released under an open source license is enough protect the whole project and its core contributors?

Licenses only protect freedom of the code if(!) all players play by the rules.
There is no protection for involved persons to expect - contributors or users. A simple law can even override the constitution and get the parliament out of the way - a situation which we have right now in Germany, so it's in no way theoretical.
To summarise: A license gives you no protection when one party plays against the rules.

Hello guys ✌
Just discover your project today and it seems amazing how far you're going with the decentrelize initiative!
Here are my thoughts:

is decentralized governance a good way to protect people building and maintaining the app?

I think you rely only the actual team to provide the software, it's not really a good way.  That's why I think you should more rely on the community when the project will grow enough to develop, make release, bug corrections, etc.

are there other ways to make the project and the extended team protected from social and political attacks?

Maybe when your work implies public stuff, you can (that's a drastic idea though) develop under generated accounts without your personal data linked to it. Like creating a random GitHub account, etc.
Also, you can make things even more decentralized by splitting important tasks to more people (like 5 people to releases, 5 to develop), so shutting down the project or arming people is less meaningful than targeting the Lead dev for example.

do you think that having Berty’s code released under an open source license is enough protect the whole project and its core contributors?

For "good people" and "good systems" (I did write on purpose these words so no{one/thing} is targeted 🙂), its sufficient as a license will bring some complexity to attack some{one/thing}.
But if you take a "bad system", it doesn't care about it and you'll mostly rely on the above thoughts to protect the project and people behind it.

at this point we focus on the release process rather than using a DAO for building the code (like for instance, granting repo permissions to devs) - is that right?

I think so. For now, the concept and the "big goal" of the project is inside your heads and not in communities's heads. Once the project is big or mature enough, it'd be time to switch IMO.
A cool feature/idea for a long term DAO, would be to rely on servers having a copy of the repository hosted on. For example, I have a git server (Gitea), I can create a copy of it in it without having to listed as fork, so if some{one/thing} want to shutdown the project on GitHub, you could rely on it to continue develop and releases.
For that, I suggest some sort of private list of servers with or without credentials where the project is stored and regularly updated.


Building the infrastructure for adding tests for interactive commands

Building the infrastructure for adding tests for interactive commands.
The main goal here is to add a tool to make testing interactive commands easier.

Closing this for now. Will reopen later in the month.


entity restyling

Scope
https://ixo.atlassian.net/browse/WEB-8
Work Done
Restyled the controle panel on entity page
Steps to Test
Screenshots

LGTM


Show list of errors from testing farm

Description
When build fails, there is are no error, only logs. GitHub and GitLab are able to parse error logs, and provide info with links that directly show what happened. With packit even reaching the logs is like 4 clicks away and then scrolling scrolling scrolling.
For example, this test failure in tmt.

https://github.com/teemtee/tmt/pull/3039#issuecomment-2205966416

See logs in various failed checks.

:sob:

Parse statuses, click red one, go https://github.com/teemtee/tmt/pull/3039/checks?check_run_id=26991071043
Parse table, go https://dashboard.packit.dev/results/testing-farm/515717
Parse page, go to build results

See everything is green https://dashboard.packit.dev/results/copr-builds/1696226

WHAT???

Now the only way to find out the error is to read through all the logs in these tiny scrolls.
Benefit

Save precious developer's time.
Reduce cognitive load from visual log parsing, and thus make more active brain cells available for the rest of the day.

Importance
Very important.
Workaround

[ ] There is an existing workaround that can be used until this feature is implemented.

Participation

[X] I am willing to submit a pull request for this issue. (Packit team is happy to help!)

Hi @abitrolly !
Sorry for not getting to this sooner. You are touching multiple coupled (and relevant) points here so I'll try to split this into multiple (hopefully doable) tasks:

Clicks on GitHub

Sadly, we can't avoid the extra click to get from the request to the Check Run UI (this is a design of GitHub). But, we can use this markdown view to provide more information, but, this is a GitHub-specific feature and we try to share as much as possible => not saying we can't put more info there but we don't want to put all the info from the dashboard into this markdown.

Quickly get the summary of the error

@mfocko mentioned we might be able to provide GitHub with a standardised form of test results. (We need to check this.)
Also, we can try to get this from TF and use it either in a status name (a little space) or in GitHub Check Run Markdown (more space, but GitHub specific as mentioned above) and/or in the Packit's dashboard.

Navigation through the dashboard

Definitely can be improved -- I can see a few small changes that might help here:

Providing more of a pipeline-centric view on the tasks (WIP).
When showing Copr builds in the test result page on the Packit dashboard, provide the build's overall status to ensure the build succeeded.  Showing it green should always be the case since the tests are run only when the build is finished (if we don't skip the builds entirely).
Make it clear that the red oval is meant to be used to get to the logs. (At least a tooltip. Maybe some log-like icon? Not sure now but definitely improbable.)

TF result view

Can definitely be improved, but is more on the TF developers. This specific occurrence of "failure" is very confusing. For me as well...;)
We can ask on their issue tracker to improve this.
One thing @Venefilyn is trying to achieve is to have one shared dashboard for all the related tools (basically to have one dashboard both for Packit and TF). This is still not clear how to approach (and sustainably manage) but something we are thinking about.

I hope I haven't forgotten about any crucial issue -- please, let me know what you think about these and we can create a separate task for each item.
Thanks for providing us with the whole story of you going through this! This is really helpful since we are a bit biased.

Thanks for the reply. The "first experience" UI/UX issues are still actual. Now that I've got some answers, I've also a bit biased, so let me concentrate on the problem I am trying to solve right now.

TF result view

Can definitely be improved, but is more on the TF developers. This specific occurrence of "failure" is very confusing. For me as well...;)
We can ask on their issue tracker to improve this.

I asked here https://gitlab.com/testing-farm/oculus/-/issues/24 but the Web UI only parses results.xml (https://gitlab.com/testing-farm/oculus/-/merge_requests/65/diffs) that is provided by TMT (I guess), and the results.xml from TMT just doesn't provide sufficient details.
In https://github.com/teemtee/tmt/pull/3039#issuecomment-2221169944 we've traced the incomplete results.xml to beakerlib test result processor. There are still some missing pieces connecting results.xml to JUnit format. Web UI lists both, but it is not clear if it uses both.

One thing @Venefilyn is trying to achieve is to have one shared dashboard for all the related tools (basically to have one dashboard both for Packit and TF). This is still not clear how to approach (and sustainably manage) but something we are thinking about.

I like static web app approach that TF Web UI (https://gitlab.com/testing-farm/oculus/-/merge_requests/64/diffs) is using.
If the results.xml format is documented and well engineered, people could use that to also render GitLab etc. Maybe it is impossible to have a perfect dashboard for everything, but it definitely possible to make a dashboard that could be customized for specific workflow.
In conclusion I must absolutely add that
graph LR
  this --> needs --> diagrams

Thanks for all the info, @abitrolly ! And thanks for your work on the related tools -- this shows quite well how is the current state a bit misleading to the user when trying to get to the responsible service...;)
Just a small update that we are starting a small research about the shared dashboard. (How do people want to use it, and what information do they need.) I am linking this issue since it has a couple of interesting points. If you are interested, we can even include you in our interview round. (But issue(s) works fine as well, so no push...;)


Version Not Udpated

Hi,
I contributed some new functions, including Count, but this is not available in the latest version.
I think you just need to create a new Tag with a new version?
I've just found myself needing Count again :)
Thanks.

Mindreading 😄


Add new header for I/O site

Add a new GlobalHeader component for the I/O repo.  This branch is branched from campfire/io-frontend. My changes are on the  feat: add new header for io site commit

-A search icon now opens the SearchModal
-Removed border from Login button
-The dark mode icon moved to far right side of screen
-Changed the links on the nav tabs
The previews all varied slightly on a few things. I went with the screenshot in the ticket for this first iteration.
Screenshot in the ticket:

If we are going with the tabs listed in this^ mockup, I will need some some URL suggestions. Platform & Solutions open dropdowns on newrelic.com and don't link to anything directly.
closes https://github.com/newrelic/developer-website/issues/2012

I am realized I need to change the colors for light mode. I thought that was just my desktop being in "Night Shift."


Release Google.Cloud.VpcAccess.V1 version 1.1.0

Changes in this release:

Commit ac367e2: feat: Regenerate all APIs to support self-signed JWTs

Created release for Google.Cloud.VpcAccess.V1-1.1.0

Documentation error:
Unhandled exception. System.ArgumentException: Unable to determine real package for page Google.Cloud.ExtendedOperationsExtensions in package Google.Cloud.VpcAccess.V1
   at Google.Cloud.Tools.GenerateCanonicalLinks.Canonicalizer.MaybeAdjustPackage(String package, String page) in T:\src\github\google-cloud-dotnet\releasebuild\tools\Google.Cloud.Tools.GenerateCanonicalLinks\Canonicalizer.cs:line 166
   at Google.Cloud.Tools.GenerateCanonicalLinks.Canonicalizer.GetUrl(String package, String page) in T:\src\github\google-cloud-dotnet\releasebuild\tools\Google.Cloud.Tools.GenerateCanonicalLinks\Canonicalizer.cs:line 115
   at Google.Cloud.Tools.GenerateCanonicalLinks.Program.Canonicalize(String api) in T:\src\github\google-cloud-dotnet\releasebuild\tools\Google.Cloud.Tools.GenerateCanonicalLinks\Program.cs:line 47
   at Google.Cloud.Tools.GenerateCanonicalLinks.Program.Main(String[] args) in T:\src\github\google-cloud-dotnet\releasebuild\tools\Google.Cloud.Tools.GenerateCanonicalLinks\Program.cs:line 30

But the package wasn't pushed to nuget. Or at least I can't see it still: https://www.nuget.org/packages/Google.Cloud.VpcAccess.V1/

If the doc building fails, it's not pushed. It's weird that this one has failed when others succeeded though - this should be fixed by https://github.com/googleapis/google-cloud-dotnet/pull/7119/commits/e03affc8f29e5d9a2f331d02aa2f9d6ee2c18af5
I'll look into it tomorrow.

I checked all the logs for the ones that failed, and it's the same failure.
I checked several of the ones that succeeded and none depend on Google.LongRunning, I think that everything that depended on Google.LongRunning failed.

Yes, that doesn't surprise me. Will look into it in more detail tomorrow. Hopefully we can work out some way of avoiding untagging everything...


Yet another issue about how many sets of files to ship

I'm sorry, I can't let go of this. One last time:
We should ship an iter-tools-es library which contains sources which are only transpiled down to the level of the most current ecmascript specification that is at least implemented in node. This code will be used in applications which transpile their dependencies to the desired level, or are able to rely on being run in a current node version. The main iter-tools library will be as it is now, though I'd say it wouldn't be out of line to remove the non-es5 files eventually.
I'll do the work on the build to make it happen.

In the mean time let's enumerate all shortcomings of the current system. I'll start:

we can't import es2015/es2018 packages (we can use rollup instead of plain babel for that)
it is counter intuitive (and a performance concern) having a es5 version being the default
I had problem in the past convincing webpack to prefer mjs files, with subsequent issues with tree shaking (this needs to be double checked)

Issues of having a es2018 version only:

this is probably not working for users that naively add the dependency without checking the es2018 level required. Given async iterables syntax will throw an error, even on es2015 compatible browser
explaining the users what needs to be included for the transpilation is complex. What if the user uses an older babel ? or ts ?

Yep, those are all shortcomings for sure. I'm not sure what you mean when you say "can't import es2015/es2018 packages". I think you generally can, but if you do it from typescript will there will be no typedefs : (
If we bundle with rollup, we might be able to get rid of the mjs files. Then instead of a dependency graph traversal problem we'll just have a pure static analysis problem for the end user to get tree shaking. uglify-es should handle that fine. Rollup unfortunately will not because it still doesn't understand PURE annotations, but I've got all the specs collected for that, I just need to get my PR fixed (maybe you could help me with that @sithmel) in order to get that support for Rollup. I do think that bundling everything would mean that we should/would ship two bundles (not separate packages) - one sync and one async. This would be a big deal for people like me. I would love to use the library at my place of work, but our current infra is too old to tree shake (we're working on it) and I can't bring myself to include sooo much code that will get shipped but never used. In don't think many people at all are using async iteration on web.
Finally the es2015/es2018/es5. I too would dearly like to not have es5 as the default export. Firstly, I don't think we should change that before we finish this release. Let's plan to do the iter-tools 7 release we've been working on and then fast follow with iter-tools 8, which drops support for es5. We can either tell webbies who need to support IE11 that they should transpile their dependencies, or we can release a one-off iter-tools-es5. I'd prefer not to release the one-off package, but if we don't we risk someone doing it for us. Maybe that's not a bad thing either though.

I would also like to drop es5, it would gives us freedom to use newer ECMAScript features.

can't import es2015/es2018 packages

If they are not transpiled to es5

maybe you could help me with that @sithmel

sure, what can I do ?

our current infra is too old to tree shake

that's why we provide the way to import using:
const map = require ('iter-tools/es2018/map)

This would go away with rollup though :sob:

I would also like to drop es5, it would gives us freedom to use newer ECMAScript features.

In my company we still have 10% of the traffic coming from IE11. This happens when users are corporate (in my case schools) that don't update their pc very often.
For this selfish reason I'd like to provide a way to use iter-tools on IE11. Either by offering a transpiled version or showing a simple enough way to transpile the code (that would be my preferred way, if possible).

I don't think iter-tools-es5 is necessary. Consumer can just transpile main module if they so choose.

If we are able to give a way that works easily for everybody, I would be happy to do so. But I as open ".babelrc" I start shaking my head: what if the user is using a different version of babel ? how can you explain them to modify their existent configuration to support iter-tools ... etc. I am not sure we are there yet

I too would dearly like to not have es5 as a default

This can be done I think

Let's plan to do the iter-tools 7 release we've been working on and then fast follow with iter-tools 8

It can be an option. Let's postpone this decision when we are closer to iter-tools 7 release

Fun fact. Just tried latest Jest 24.0.0: it still requires to transpile the code down to ES2015 before running the tests

I mean jest is meant to do the transpilation step itself, which works better since then it has sourcemaps and everything. We have a rather strange jest setup where we transpile ahead of time.

I think now that jest has projects support I could actually fix that so that jest would run a lot faster (by caching transpiled code) and have sourcemaps as it is meant to.

@conartist6 Still we are able to test the transpiled code, but not the original one. I really wish async generator were supported! It is ES2018 after all ...

You ask how we can explain to a consumer how to modify their babel config to support iter-tools.
Well needing to transpile a library is not specific to us. If we were really thoughtful, we'd make a gist or a project or something which consisted solely of documentation on how to transpile a dependency when using various configurations/tools/versions. Then we could, say, open PRs against sindresaurus projects and others that expect to be transpiled which to link to that open source documentation, and people could add documentation for various versions/setups as they encountered them

Actually though I think jest should work fine. It's in node, and it can run any code that node knows how to execute. They reason it would be breaking is that it will always run the code through a transpiler first. It needs to do this to convert imports/exports into something node can understand.
When we don't pre-transpile at all, that transpiler will choke if the appropriate sytnax isn't supported. We can fix that if we cause jest to own the transpilation itself, by just adding the @babel/plugin-syntax-async-generators plugin to the configuration jest uses to run the es2018 tests.
Now that I thought through that properly, I will fix it today.


Allow users to process any public study

Currently only the owner or admins can process those studies. This only applies to the processing not the analysis.
This should be implemented after: https://github.com/biocore/qiita/issues/1812

fixed in https://github.com/biocore/qiita/pull/2468


proposed small API change to allow much easier per-user chrooting

as proposed in ticket #29 .

Thanks!


Token Revocation

Are there any plans on implementing token revocation as per https://tools.ietf.org/html/rfc7009?
It seems to me that the library is prepared to have this functionality at some point as there is the yet unused DeleteAccessTokenSession method on the Storage interface.

Currently, there is no standard way but it's a good idea to have this similar to token validation. However, you're right, by using the DeleteAccessTokenSession you can already achieve that

see #112


Make "Please wait" dialog modal to avoid upload problems

When "Please wait" is displayed I can still tap "Next".
Doing so is linked to uploads that never start, in my experience.
I think an easy fix would be to make "Next" not tappable when "Please wait" is visible.

@nicolas-raoul Can I fix it?

@Ayan-10 It is yours, thanks! :-)


[API, Goals] System allows to save custom goal with empty values.

Environment: macOS Catalina 10.15.4, Google Chrome  83.0.4103.97 (64-bit)
Reproducable: always
Build found: commit 7384fdc
Preconditions

Swagger https://greencity.azurewebsites.net/swagger-ui.html#/ is opened.
Log in  (e.g. em<EMAIL_ADDRESS>pwd: Green.city#500)
Get token
Authorize

Steps to reproduce

Click on 'user-controller' drop down page
Click on '/user/{userId}/customGoals Save one or multiple custom goals' request
Click "Try it out" button
Edit request
{
"customGoalSaveRequestDtoList": [
{
"text": ""
}
]
}
Fill in 'userId' field (eg. userId: '302')
Click the "Execute" button.

Actual result
System allows to save custom goal with empty values.

Database

Expected result
System should not allow to save custom goal with empty values
Test case

The system allows saving a custom goal with empty values.

The bug didn't fix:

DB:

The bug didn't fix


fix quote for text with '/', such as branch 'dev/test'

When branch such as 'dev/test' use quote_any function, port.quote will let safe='/' as default. So branch whose text contains '/' will not work in restful api request GET /projects/:id/repository/branches/:branch
Just change port.quote(port.to_b(val)) to port.quote(port.to_b(val), safe='') will be ok.

The command "pip install requests==0.14.1 --use-mirrors" failed and exited with 2 during

Thanks for the PR, sorry it took a while to look at. The test failures are something that needs to be addressed separately, but the PR itself looks great.


Data extension for converting to a JSON object

🚀
I've found this extension particularly useful when debugging JSON web responses. If you try and just print out the strings lldb prints them out as one big jumbled line, but if you print out these jsonObject responses it's much cleaner.
What do you think about this being added to String as well?
Checklist

[x] I checked the Contributing Guidelines before creating this request.
[x] New extensions are written in Swift 4.
[x] New extensions support iOS 8.0+ / tvOS 9.0+ / macOS 10.10+ / watchOS 2.0+.
[x] I have added tests for new extensions, and they passed.
[x] All extensions have a clear comments explaining their functionality, all parameters and return type in English.
[x] All extensions are declared as public.
[x] I have added a changelog entry describing my changes.

          4 Messages

:book:
Thank you for submitting a pull request to SwifterSwift. The team will review your submission as soon as possible.

:book:
iOS: Executed 506 tests, with 0 failures (0 unexpected) in 3.093 (3.660) seconds

:book:
tvOS: Executed 475 tests, with 0 failures (0 unexpected) in 1.865 (2.371) seconds

:book:
macOS: Executed 337 tests, with 0 failures (0 unexpected) in 1.431 (1.692) seconds

  Generated by :no_entry_sign: Danger

Hey @guykogus :))
I believe it will be a useful thing adding to string too, but only concern is that even we using #canImport(Foundation) it will be a extension that adds a little dependency on Foundation. For something like that I'll probably prefer a JSONSerialization extension JSONSerialization.jsonObject(with string: String, options opt: JSONSerialization.ReadingOptions = [])(Not sure if we already have that). But it is just a option, as I said we already use canImport statements in some String extensions that already use some foundation types, so ... I think there's no problem to add it to string too :)) Just pointing it out to see it worth a discussion 👍


Broken links in FAQ

Hey, I just want to let you know that the Logs and Gradle run configuration links at the bottom of the FAQ.md file are broken. I'd really appreciate if those were updated!

The images are correctly displayed when viewing the markdown page in IntelliJ.
Github uses camo to anonymize links as described here: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/about-anonymized-urls
Camo urls are used for the two non working imgaes Logs and Gradle run configuration.
I checked the steps described here for the non working images of the FAQ.md.
It looks like the Content-Type served by https://intellij-support.jetbrains.com for these images causes the problem.
The curl for the Logs image:
curl -sI https://intellij-support.jetbrains.com/hc/user_images/GazJhC54rML33MBauVXrww.png | grep -i "^Content-Type:"

gives content-type: text/html; charset=UTF-8
The curl for the Gradle run configuration image:
curl -sI https://intellij-support.jetbrains.com/hc/user_images/qPiO-BjDP_fSIPKJ5VePJA.png | grep -i "^Content-Type:"

gives content-type: text/html; charset=UTF-8
text/html is not an image and isn't in the list of types supported by Camo.
The curl for the correct displayed image Debug Gradle run configuration:
curl -sI https://cloud.githubusercontent.com/assets/140920/9789780/ca31d9f2-57da-11e5-804b-087b06a6eda9.png | grep -i "^Content-Type:"

gives content-type: image/png

Information has been added in textual form to new FAQ page located in SDK docs https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin-faq.html#how-to-show-log-file-of-sandbox-instance


Moved oss-fuzz build script to Tesseracts own repository

This PR moves the oss-fuzz build script over to Tesseracts own repository. No changes have been made to the build-script besides removing the license header that won't be necessary.
If the PR is merged, I will adjust the build script in oss-fuzz's repository accordingly to run in a similar fashion as libreoffice's build script.
Having the build script in the projects own repository is recommended for maintainers and contributors to easier maintain the oss-fuzz integration. Build scripts become outdated, and fixing a broken build is easier and faster with the current setup.
Other examples of projects on oss-fuzz having this setup are: curl, leptonica & lz4

See PR #2963 which does nearly the same.

Ah right - makes sense. Closing this PR.


Add Dependabot Configuration for Dependency Updates

Description
This pull request introduces a configuration for Dependabot, an automated dependency update tool, to manage and keep dependencies up-to-date within the repository. The specific updates
configured in this PR are for Go modules (gomod) and GitHub Actions workflows.
Features Added

Dependabot Configuration: Adds configuration files necessary for Dependabot to monitor and update both Go module dependencies and GitHub Actions workflow dependencies
automatically.
Scheduled Updates: Configures Dependabot to perform weekly updates at the same time (12:00 PM) every Monday.
Commit Message Prefix: Customizes commit messages generated by Dependabot to include a prefix (deps:) for easy identification of changes related to dependencies.

Configuration Details

Package Ecosystems:

gomod: Configures Dependabot to manage updates for Go module dependencies across the repository.
github-actions: Monitors and updates GitHub Actions workflows defined in the repository, ensuring they are using the latest versions available.

Schedule: Updates are scheduled every Monday at noon (12:00 PM), maintaining a consistent update cadence that aligns with routine maintenance activities.
Directory: Applies to all directories within the repository, ensuring comprehensive coverage for dependency management.

Benefits

Automated Maintenance: Reduces manual effort required for updating dependencies by automatically generating pull requests for updates.
Version Control: Maintains a clear record of changes related to dependencies in commit messages and pull request descriptions.
Consistency: Ensures that all dependencies are updated consistently across the repository, minimizing potential conflicts or inconsistencies.

Implementation Notes

The configuration file(s) will be added to the appropriate directory within the repository where Dependabot can read them for automated updates.
Ensure that any additional setup required for Dependabot (e.g., permissions, secrets management) is handled according to best practices.

Dependabot has wreaked havoc in our Caddy ecosystem, and I am not interested in using it anymore.


Trace requests and response log message placement

Currently message are traced via log message requests and responses that wrap function calls.  Unfortunately, the trace requests are logged after the function call when they should actually be logged before the function call (and traces of responses after the function call).
Add a incremental message ID that correlates the TRACE REQ and TRACE RSP log messages.

Code complete, migrated


Bug report

What happened?
I used remotely save to sync three platforms, ipad side, pc side and Android side, I tried several webdav's, such as nut cloud, tera, 4shared, and finally tried 奇它云盘. I think the 奇它云盘 in China access speed is good and capacity is large, although occasionally pc and ipad will also report errors, but the main thing is the same configuration of the Android side is always unable to connect 奇它云盘, and report errors.

DQL
No response
JS
No response
Dataview Version
im not sure
Obsidian Version
1.3.2（69）
Device
红米k20 pro
OS
miui 12. 5. 6

I updated the Android side to the latest version via Google Play Store, and again using the same configuration as the ipad, now it starts reporting this error

In which sense this is related with dataview?

I didn't quite get it, I didn't install the dataview plugin if that's what you're talking about, it's the error window that pops up after a manual sync, my code skills aren't great enough to read it, I only know what's being reported

If you didn't install dataview, how is it related to this plugin?

Why bother about this？This Dataview Version is a template option for reporting bugs, and when I filled in this bug, I didn't know dataview was a plug-in, and I thought it was a version of a protocol that I hadn't seen before, so I just wrote that I'm not sure, okay

Ok so this is not an issue related to this repository and therefore we can't fix it. I will sadly have to close this. Please find the correct repository to file this issue in.


page use vant and @vitejs/plugin-legacy plugin build.

Describe the bug
page use vant lib and @vitejs/plugin-legacy plugin build. run in chrome58 get Error SystemJS https://git.io/JvFET#3.
but page only use my component, it will be normal.

dist/assets not has file ./index-legacy.62d61901.js
Reproduction
https://github.com/hxdyj/vite-bug-legacy
System Info
System:
    OS: Linux 4.4 Debian GNU/Linux 10 (buster) 10 (buster)
    CPU: (12) x64 AMD Ryzen 5 PRO 4650U with Radeon Graphics
    Memory: 2.58 GB / 15.23 GB
    Container: Yes
    Shell: 5.7.1 - /bin/zsh
  Binaries:
    Node: 15.11.0 - /usr/local/bin/node
    Yarn: 1.22.10 - /usr/local/bin/yarn
    npm: 7.6.0 - /usr/local/bin/npm
  npmPackages:
    @vitejs/plugin-vue: ^1.2.5 => 1.2.5
    vite: ^2.4.3 => 2.4.3

Used Package Manager
yarn
Logs
No response
Validations

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

@nulladdict  I guess this is plugin @vitejs/plugin-legacy bug.

same error ！！！

same error ！！！

I find the way to build success，
But need modify plugin source code.

same issue with latest vite and legacy-plugin.

index 44d1bbc..d626fdc 100644
---<EMAIL_ADDRESS>+++<EMAIL_ADDRESS>@@ -40,6 +40,7 @@ function viteLegacyPlugin(options = {}) {
   const facadeToModernPolyfillMap = new Map()
   const modernPolyfills = new Set()
   const legacyPolyfills = new Set()
+  let nullFacadeMap = {}

   if (Array.isArray(options.modernPolyfills)) {
     options.modernPolyfills.forEach((i) => {
@@ -93,12 +94,18 @@ function viteLegacyPlugin(options = {}) {
       if (config.build.minify === 'esbuild') {
         throw new Error(
           `Can't use esbuild as the minifier when targeting legacy browsers ` +
-            `because esbuild minification is not legacy safe.`
+          `because esbuild minification is not legacy safe.`
         )
       }
     },

     async generateBundle(opts, bundle) {
+      for (const name in bundle) {
+        let chunk = bundle[name]
+        if (chunk.type === 'chunk' && !chunk.facadeModuleId) {
+          nullFacadeMap[chunk.fileName] = chunk
+        }
+      }
       if (!isLegacyBundle(bundle, opts)) {
         if (!modernPolyfills.size) {
           return
@@ -399,6 +406,7 @@ function viteLegacyPlugin(options = {}) {
     },

     generateBundle(opts, bundle) {
+      Object.assign(bundle, nullFacadeMap)
       if (isLegacyBundle(bundle, opts)) {
         // avoid emitting duplicate assets
         for (const name in bundle) {
@@ -434,7 +442,7 @@ function viteLegacyPlugin(options = {}) {
       if (envInjectionFailed) {
         config.logger.warn(
           `[@vitejs/plugin-legacy] import.meta.env.LEGACY was not injected due ` +
-            `to incompatible vite version (requires vite@^2.0.0-beta.69).`
+          `to incompatible vite version (requires vite@^2.0.0-beta.69).`
         )
       }
     }

 modify node_modules plugin index.js

this is work for me, same problem here

I had the same problem before，and i tried use VueRouter without dynamic import() then solved it.
Now when I upgrade some dependencies related to vite, the problem is solved automatically, and I can't find the reason😂

Hi @hxdyj. I tested the repro locally and this seems to be fixed now. I dont see any files missing after upgrading Vite to 2.8.6 and plugin-legacy to 1.7.1. Can you confirm if this is fixed for you?

Hi @hxdyj. I tested the repro locally and this seems to be fixed now. I dont see any files missing after upgrading Vite to 2.8.6 and plugin-legacy to 1.7.1. Can you confirm if this is fixed for you?

already fixed. Thank you!!


manifest: add cmsis_6

Add the CMSIS v6 repo as a module.

FYI @ithinuel @microbuilder @povergoing
Let me know if anyone wants to be added/removed as collaborator/maintainer.

Thank you @tomi-font for creating this!
Would you mind adding myself & @wearyzen to the collaborator list please ?

Thank you @tomi-font for creating this!
Would you mind adding myself & @wearyzen to the collaborator list please ?

Sure. How about I give you the maintainer hat as well?


traceId is not propagated on kafka

Describe the bug
The traceId is not propagated to Kafka.
Spring Boot 2.5.2
Spring Cloud 2020.0.3
Spring Cloud Sleuth OTel 1.0.0-M8
Sample
See https://github.com/codecraft21/demo-tracing
master branch: generated from start.spring.io + added Sleuth OTel according to its doc
When calling the / endpoint, another endpoint is called (traceId is propagated on http) and then a kafka message is produced.
The consumer has no traceId.
2021-06-26 19:25:12.209  INFO [,b062f82be4a37b87f96916d298f9a41a,296ab729c3b3ed95] 10856 --- [nio-8080-exec-3] c.codecraft.demo.tracing.DemoController  : Handling home
2021-06-26 19:25:12.212  INFO [,b062f82be4a37b87f96916d298f9a41a,0f3000fc63a58f61] 10856 --- [nio-8080-exec-8] c.codecraft.demo.tracing.DemoController  : generated uuid 19008618-ced3-439a-aa47-28575f21ec7e
2021-06-26 19:25:12.213  INFO [,b062f82be4a37b87f96916d298f9a41a,296ab729c3b3ed95] 10856 --- [nio-8080-exec-3] c.codecraft.demo.tracing.DemoController  : produced kafka 19008618-ced3-439a-aa47-28575f21ec7e
2021-06-26 19:25:12.216  INFO [,,] 10856 --- [container-0-C-1] ch.codecraft.demo.tracing.AsyncService   : received 'some data 19008618-ced3-439a-aa47-28575f21ec7e' with headers: RecordHeaders(headers = [], isReadOnly = false)

brave branch: same setup but without OTel, only Sleuth default. And in that case the traceId is propagated to Kafka.
2021-06-26 19:26:17.916  INFO [,ee08855bbd16bed9,ee08855bbd16bed9] 21112 --- [nio-8080-exec-5] c.codecraft.demo.tracing.DemoController  : Handling home
2021-06-26 19:26:17.918  INFO [,ee08855bbd16bed9,d56b43ff83467b4d] 21112 --- [nio-8080-exec-2] c.codecraft.demo.tracing.DemoController  : generated uuid 510314f5-64a0-4005-b171-6759483bf065
2021-06-26 19:26:17.919  INFO [,ee08855bbd16bed9,ee08855bbd16bed9] 21112 --- [nio-8080-exec-5] c.codecraft.demo.tracing.DemoController  : produced kafka 510314f5-64a0-4005-b171-6759483bf065
2021-06-26 19:26:17.922  INFO [,ee08855bbd16bed9,cf0d4734f3375490] 21112 --- [container-0-C-1] ch.codecraft.demo.tracing.AsyncService   : received 'some data 510314f5-64a0-4005-b171-6759483bf065' with headers: RecordHeaders(headers = [], isReadOnly = false)

Can you check Cloud 2021.0.0-SNAPSHOT, Boot 2.5.2 and Otel 1.1.0-SNAPSHOT ?

Same effect, not working:
2021-06-28 17:32:00.012  INFO [,623d05548aa118482be8d4a9685e2fb5,d24e00d4673946c9] 22712 --- [nio-8080-exec-5] c.codecraft.demo.tracing.DemoController  : Handling home
2021-06-28 17:32:00.015  INFO [,623d05548aa118482be8d4a9685e2fb5,3101e2ae10500709] 22712 --- [nio-8080-exec-4] c.codecraft.demo.tracing.DemoController  : generated uuid da0122d9-8639-49a6-bf66-f003cf91e0c2
2021-06-28 17:32:00.016  INFO [,623d05548aa118482be8d4a9685e2fb5,d24e00d4673946c9] 22712 --- [nio-8080-exec-5] c.codecraft.demo.tracing.DemoController  : produced kafka da0122d9-8639-49a6-bf66-f003cf91e0c2
2021-06-28 17:32:00.020  INFO [,,] 22712 --- [container-0-C-1] ch.codecraft.demo.tracing.AsyncService   : received 'some data da0122d9-8639-49a6-bf66-f003cf91e0c2' with headers: RecordHeaders(headers = [], isReadOnly = false)

See the latest branch

Hmm @andersclausen - is this anything related to what you've been working on?

@marcingrzejszczak we shall have a look mate

Spring Kafka creates kafka producers and applies post processor, see https://github.com/spring-projects/spring-kafka/blob/main/spring-kafka/src/main/java/org/springframework/kafka/core/DefaultKafkaProducerFactory.java#L741-L748
It works for Brave because it has a org.springframework.cloud.sleuth.brave.instrument.messaging.KafkaFactoryBeanPostProcessor but I could not find an equivalent for OTel. Debugging DefaultKafkaProducerFactory with OTel showed an empty postProcessors list, thus no instrumentation when producing.

@marcingrzejszczak the problem described above is about spring-kafka and our changes applies on the kafka client directly, so shouldn't have an effect on what's described by @codecraft21 - however, we shall double-check and get back to you all.

Spring Kafka creates kafka client producers instances directly, how could "your changes" be applied?
Can you give me a pointer to those "changes"?

@codecraft21 we have recently implemented Kafka instrumentation which decorates the Kafka clients directly, i.e. picks up Producer and Consumer beans from the context and decorates them. AFAIK, spring-kafka does not expose these producers and consumers directly, rather it uses factories to create and manage them under the hood in KafkaTemplate.
Our instrumentation also provides ProducerFactory and ConsumerFactory beans which will create decorated clients, mainly to be provided manually to KafkaSender and KafkaReceiver when using reactor-kafka. Again, AFAIK spring-kafka uses its own factories.
The Kafka instrumentation I'm talking about is here:
Autoconfig: https://github.com/spring-cloud/spring-cloud-sleuth/tree/3.1.x/spring-cloud-sleuth-autoconfigure/src/main/java/org/springframework/cloud/sleuth/autoconfig/instrument/kafka
Implementation: https://github.com/spring-cloud/spring-cloud-sleuth/tree/3.1.x/spring-cloud-sleuth-instrumentation/src/main/java/org/springframework/cloud/sleuth/instrument/kafka

@codecraft21 In addition to my comment above, as part of the same Kafka instrumentation we expose a reactive ProducerFactory and ConsumerFactory to be used with reactor-kafka. Perhaps a similar approach could work for spring-kafka?  I see that spring-kafka can also take custom producer and consumer factories. But I'm not sure that would be the right way to do it, or whether spring-kafka has some other abstractions that could be (or already are) instrumented, @marcingrzejszczak ?

@flavium31 Thanks for the details.
As I mentioned above: you could call addPostProcessor on spring kafka factories, like brave instrumentation does: https://github.com/spring-cloud/spring-cloud-sleuth/blob/main/spring-cloud-sleuth-brave/src/main/java/org/springframework/cloud/sleuth/brave/instrument/messaging/KafkaFactoryBeanPostProcessor.java#L41

Any update on this?

@marcingrzejszczak if the approach suggested above by @codecraft21 sounds good, we can prepare a PR for this

LGTM please open a PR

The traceId is now propagated to Kafka, but what must be done to have the Kafka header used by MDC?
2021-09-30 21:57:47.274 DEBUG [,,] 11364 --- [nio-8080-exec-1] o.s.c.s.i.web.tomcat.TraceValve          : Handled send of span [PropagatedSpan{ImmutableSpanContext{traceId=f156d15013644394291fbed283f7984d, spanId=fa58477fc35fd002, traceFlags=00, traceState=ArrayBasedTraceState{entries=[]}, remote=false, valid=true}}]
2021-09-30 21:57:47.294 DEBUG [,,] 11364 --- [ad | producer-1] o.s.c.s.i.kafka.KafkaTracingCallback     : Finished producer span PropagatedSpan{ImmutableSpanContext{traceId=f156d15013644394291fbed283f7984d, spanId=9165d406bba5e2b7, traceFlags=00, traceState=ArrayBasedTraceState{entries=[]}, remote=false, valid=true}}
2021-09-30 21:57:47.295 DEBUG [,,] 11364 --- [container-0-C-1] o.s.c.s.o.p.BaggageTextMapPropagator     : Will propagate new baggage context for entries {}
2021-09-30 21:57:47.298 DEBUG [,,] 11364 --- [container-0-C-1] o.s.c.s.i.kafka.KafkaTracingUtils        : Extracted span from event headers PropagatedSpan{ImmutableSpanContext{traceId=f156d15013644394291fbed283f7984d, spanId=ce2c931533c048de, traceFlags=00, traceState=ArrayBasedTraceState{entries=[]}, remote=false, valid=true}}
2021-09-30 21:57:47.299  INFO [,,] 11364 --- [container-0-C-1] ch.codecraft.demo.tracing.AsyncService   : received 'some data 5b4df89a-58d4-4df2-abac-6606ceb95f14' with headers: RecordHeaders(headers = [RecordHeader(key = b3, value = [102, 49, 53, 54, 100, 49, 53, 48, 49, 51, 54, 52, 52, 51, 57, 52, 50, 57, 49, 102, 98, 101, 100, 50, 56, 51, 102, 55, 57, 56, 52, 100, 45, 57, 49, 54, 53, 100, 52, 48, 54, 98, 98, 97, 53, 101, 50, 98, 55, 45, 48])], isReadOnly = false)

Notice the Kafka consumer sees the header with the traceId but it's not on the MDC context. Am I missing something?
This is with Cloud 2021.0.0-SNAPSHOT and Otel 1.1.0-SNAPSHOT and Spring Boot 2.6.0-SNAPSHOT, see my updated latest branch

@codecraft21 could it be the same limitation as the one described here: https://github.com/spring-cloud/spring-cloud-sleuth/issues/1965 ?

Sure looks similar.
Does it mean that propagating a traceId from a Kafka header is simply not a feature of Spring Cloud Sleuth?

At this point you need to do a manual step of connecting the KafkaReceiver with the Sleuth's Propagator. So it's basically a couple lines of code to write. But yeah, at this point we support it in such a way that the span is finished once the consumer consumes the Kafka message. So then, since it's finished, you need to create a child span by yourself as presented in the workaround.


[Snyk] Security upgrade socket.io-client from 3.1.3 to 4.8.0

Snyk has created this PR to fix 1 vulnerabilities in the npm dependencies of this project.
Snyk changed the following file(s):

frontend/package.json

Vulnerabilities that will be fixed with an upgrade:

Issue
Score

Denial of Service (DoS) SNYK-JS-WS-7266574
  169

[!IMPORTANT]

Check the changes in this PR to ensure they won't cause issues with your project.
Max score is 1000. Note that the real score may have changed since the PR was raised.
This PR was automatically created by Snyk using the credentials of a real user.

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.
For more information:
🧐 View latest project report
📜 Customise PR templates
🛠 Adjust project settings
📚 Read about Snyk's upgrade logic

Learn how to fix vulnerabilities with free interactive lessons:
🦉 Denial of Service (DoS)

Checkmarx One – Scan Summary & Details – ae778fc7-2570-46e5-b715-4baed359d73f
New Issues

Severity
Issue
Source File / Package
Checkmarx Insight

CVE-2024-40643
Npm-htmlparser2-4.1.0
Vulnerable Package

CVE-2024-40643
Npm-htmlparser2-3.3.0
Vulnerable Package

CVE-2024-40643
Npm-htmlparser2-3.10.1
Vulnerable Package

CVE-2024-29415
Npm-ip-2.0.1
Vulnerable Package

CVE-2024-30105
Nuget-System.Text.Json-7.0.20
Vulnerable Package

CVE-2024-34393
Npm-libxmljs2-0.33.0
Vulnerable Package

CVE-2024-34394
Npm-libxmljs2-0.33.0
Vulnerable Package

CVE-2024-37890
Npm-ws-7.4.6
Vulnerable Package

CVE-2024-38355
Npm-socket.io-3.1.2
Vulnerable Package

CVE-2024-42459
Npm-elliptic-6.5.4
Vulnerable Package

CVE-2024-42460
Npm-elliptic-6.5.4
Vulnerable Package

CVE-2024-42461
Npm-elliptic-6.5.4
Vulnerable Package

CVE-2024-43788
Npm-webpack-5.76.1
Vulnerable Package

Cx14b19a02-387a
Npm-body-parser-1.20.3
Vulnerable Package

Fixed Issues

Severity
Issue
Source File / Package

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 143

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 82

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 187

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 137

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 143

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 82

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 187

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 137

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 143

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 82

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 187

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 137

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 143

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 82

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 187

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 137

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 143

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 82

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 187

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 137

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 143

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 82

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 187

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 137

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 143

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 82

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 187

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 137

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 143

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 82

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 187

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 137

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 143

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 82

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 187

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 137

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 143

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 82

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 187

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 137

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 143

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 82

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 187

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 137

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 143

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 82

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 187

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 137

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 143

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 82

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 187

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 137

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 143

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 82

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 187

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 137

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 137

Reflected_XSS
/test/cypress/e2e/contact.spec.ts: 187

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 143

Reflected_XSS
/test/cypress/e2e/noSql.spec.ts: 82

Path_Traversal
/Langchain/py_example.py: 99

Log_Forging
/Langchain/py_example.py: 95

Log_Forging
/Langchain/py_example.py: 99

Log_Forging
/Langchain/py_example.py: 95

Log_Forging
/Langchain/py_example.py: 99

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14

Open_Redirect
/routes/redirect.ts: 14