[Change]: Improve PIE principles

Summary
Expansion/edit to rationale for the PIE principles
Source
PIE Sessions, personal contribution
Detail
_Rationale currently reads:
Maintaining trust in TREs to hold and use data is essential to prevent backlash or resistance to the use of data. This can include maintaining the trust of members of the public who are impacted by research, as well as the trust of commercial data providers.
In the case of public sector data, public engagement work has indicated there is widespread support for the use of regulated and ethical TREs working for the public benefit. Consulting impacted parties, including the public, can help ensure TREs are being used for positive, impactful and agreed-upon purposes. Being transparent about the data held and the projects or organisations who access the data can also help maintain trust.
Implications
Being as transparent as possible is key to building trust. TREs holding public data should practice transparency, for instance making adherence to any accreditation body, or framework (for instance the Five Safes) publicly available information, and making information on the projects or organisations which access their data available to impacted parties.
A strong public engagement programme takes time and resource. TREs holding public data should consider allocating specific staffing to public engagement activities.
TREs open to consultation by impacted parties should be auditable, and impacted parties should be part of any decision making processes. This may include the provision of documentation and educational resources for a diverse audience.
Access to public sector data should be reviewed by an independent panel and follow agreed-upon governance to ensure projects using this data are in the public benefit, and provide clarity around any commercial access._
Detail from public sessions and review of previous public engagement reports and work indicates a change of tone and detail to be added.
Additionally 'TREs open to consultation by impacted parties should be auditable, and impacted parties should be part of any decision making processes. This may include the provision of documentation and educational resources for a diverse audience.' this paragraph should be rewritten for clarity @machintim was this your wording to start with?
Where
Principles - Maintaining Public Trust
Proposal
Rationale
To ensure continued public support for the use of data and to alleviate possible concerns, it is vital to maintain public trust in the ways TREs hold and use data. This can include maintaining the trust of members of the public whose data is held, those who are impacted by research, as well as the trust of commercial data providers.
In the case of public sector data, public engagement work has indicated there is support for the use of regulated and ethical TREs working for the public benefit as long as conditions are met surrounding security and transparency. Consulting impacted parties, including the public, can help ensure TREs are being used for positive, impactful and agreed-upon purposes. Being transparent about the data held and the projects or organisations who access the data can also help maintain trust.
Implications
Being as transparent as possible is key to building trust. TREs holding public data should practice transparency, for instance making adherence to any accreditation body, or framework (for instance the Five Safes) publicly available information, and making information on the projects or organisations which access their data available. This should be written in an accessible way.
In addition to transparency, actively involving members of the public in oversight of TREs and their processes is important for accountability. Public involvement and engagement takes time and resource. TREs holding public data should consider allocating specific staffing and budget to public engagement activities.
TREs open to consultation by impacted parties should be auditable, and impacted parties should be part of any decision making processes. This may include the provision of documentation and educational resources for a diverse audience.
Access to public sector data should be reviewed by an independent panel, which includes members of the public where possible, and follow agreed-upon governance to ensure projects using this data are in the public benefit, and provide clarity around any commercial access.
Who can help
@manics @machintim @JimMadge @Cianodonovan @JillB19 @antonychuter

I'll open a PR for this.


Fix for the typo in generating script and Cpp linking issue

As stated in the issue #5 there is a problem with generating the library headers on linux, this issue is caused by a typo, this pull request resolves #5. Issue #6 is solved by adding cpp extern C directive. This resolves #6.

Also, i regenerated the example files in the repository to contain the proper directive.

thanks!


1.2.1 claims to fix cups 2.2.x build problems but doesn't

see michaelrsweet/lprint#67 for more information

[master 081184e] Define more IPP operations that are missing from CUPS 2.2.x and earlier (Issue #212)
[v1.2.x ebedbbc] Define more IPP operations that are missing from CUPS 2.2.x and earlier (Issue #212)


WIP: Add static manage favorites button on profile

@vevix this needs hooked up so that clicking the buttons trigger the edit favorites section of the profile modal.

Hookup done, good to merge or did you want to style more? @JoshFabian

I think this is ready to 🚢 will probably style more at a later time.


question about CustOmics

Hello,
CustOmics looks like a very interesting tool, congratulations!
I was wondering if this tool can only be applied to cancer or also to other types of diseases? I have data of different types (transcriptomics, biomarkers,...) and I was looking for a way to integrate this data and make a machine learning model to correctly classify the patients... The disease is tuberculosis. Would it be possible to do something with CustOmics?
Thank you in advance

Hello,
Thank you for your interest in CustOmics. The model can in fact be used for other types of disease, there is no constraint on the end goal of the model. As long as you input the label to predict in the same way done in the example notebook it should be fine.

Perfect, thank you so much!

Perfect, thank you so much!


setProp with string properties fails to compile C++ in UE5.

Using an Expresso instruction in Articy ( such as setProp(getObj("Quest1"), "Quest_Properties.Description", "hello") ) fails to compile C++ in UE5. I get a popup message within the UE5 editor saying:
"Aborting import process. No cache available to restore. Deleting import asset but leaving generated code intact. Please delete manually in Source/ArticyGenerated if necessary and rebuild. Reason: OtherCompilationError."
Using setProp for boolean or integer properties appears to work just fine.

Hi,
Thanks for reporting this issue!
I was able to reproduce it and we will take a closer look at it soon.
Best regards,
Christian


Accessing Pressure from a MotionEvent

Use case
When there's a MotionEvent on Android it's possible to access the pressure that the user used when they tapped on the screen via getPressure(int pointerIndex)).
I want to detect patterns in the pressure that my user is using and access that data in Flutter.
Proposal
Currently, there's AndroidMotionEvent but the documentation for AndroidMotionEvent doesn't say anything about how the user can access this class. If there's already a way to access it, that should be documented in AndroidMotionEvent.
Additionally, in opposition to the general Flutter principles of avoid exposing API cliffs the AndroidMotionEvent currently doesn't implement all the functions of Android's MotionEvent and doesn't provide information for pressure. It would be great if that information would be provided.
There likely should also be a non-platform specific class that AndroidMotionEvent implements.

/cc @dkwingsmt


Default to ReadonlyArray

Search Terms
ReadonlyArray, default
Suggestion
By default type for array is inferred as Array. It would be better to default to a more strict ReadonlyArray and if programmer needs mutability — he would explicitly state so. Could be a tsconfig option to not introduce a breaking change.
Use Cases
readonly value = [0, 1, 2, 3]; // <-- type number[] here
Examples
readonly value = [0, 1, 2, 3];
readonly mutableValue: Array<number> =  [0, 1, 2, 3];

Checklist
My suggestion meets these guidelines:

[✓] This wouldn't be a breaking change in existing TypeScript/JavaScript code
[✓] This wouldn't change the runtime behavior of existing JavaScript code
[✓] This could be implemented without emitting different JS based on the types of the expressions
[✓] This isn't a runtime feature (e.g. library functionality, non-ECMAScript syntax with JavaScript output, etc.)
[✓] This feature would agree with the rest of TypeScript's Design Goals.

Are you saying you want,
//ts
export const arr = [1,2,3];

To emit,
//.d.ts
export const arr : readonly number[];

?

@AnyhowStep I'm not familiar with the syntax you used in your .d.ts. I want a tcsconfig option for
//ts
export const arr = [1,2,3];

to emit
//.d.ts
export const arr: ReadonlyArray<number>;

I see. Thanks @demensky so there's this (was not familiar with this feat):
https://github.com/Microsoft/TypeScript/wiki/What's-new-in-TypeScript#const-assertions
That's a bit shorter than explicitly stating ReadonlyArray but in terms of arrays I like never use mutability and very rarely do for objects, it would be great if I could force that thing on a tsconfig level like I can force things like strict null checks, no implicit any, strictPropertyInitialization, stuff like that.

Do note there's a subtle difference - as const when applied to an array literal infers a tuple, not an array.  At runtime tuples and arrays are the same of course, but there are differences in how the type system treats them.
It also infers the strictest possible type for each element (literal type) rather than the more general number or string, so that's something to keep in mind too.

@fatcerberus true, that's why I'm focusing on array and object since it wouldn't matter for them for the most part, and for numbers and strings we can just declare them as const and not let.

I'd like this feature, but TypeScript should remain intuitive to plain JavaScript users IMO, so it should live behind a -strict-array-immutability flag.
I'd also love to have this for interface properties, defaulting to readonly with a -strict-interface-immutability flag and having to mark mutable ones with a mutable keyword, as such:
interface T {
  n: number // immutable
  mutable s: string // mutable
}

const o: T = {
  n: 42,
  s: 'hello world',
}

o.n = 43 // error
o.s = '👋🌎' // ok

The interface is a separate suggestion and should probably live in its own GitHub issue, but it makes sense to mention it in this discussion since the semantics/syntax should be similar.

Having a flag which will turn on  "assume everything is read only" would be great!
I'm using readonly in all the places and it's too noisy. I would prefer mutable flag for places where I do need mutation which I don't in 99% of the time.

@safareli's suggestion should be a proposal by its own, probably. The problem is, how will we consume 3rd party libraries which cannot have their own flags scoped to their code? Library ecosystem would be divided into 2 which is not desirable.
We probably need per module/file flags like Haskell's lang. extensions. It would behave similar to the @jsx pragma. Only a subset of flags can be used with in-file pragmas. So gotta extend @jsx pragma feature to a more generic feature.

@safareli's suggestion should be a proposal by its own, probably. The problem is, how will we consume 3rd party libraries which cannot have their own flags scoped to their code? Library ecosystem would be divided into 2 which is not desirable.
We probably need per module/file flags like Haskell's lang. extensions. It would behave similar to the @jsx pragma. Only a subset of flags can be used with in-file pragmas. So gotta extend @jsx pragma feature to a more generic feature.

Library ecosystem would be divided into 2 which is not desirable.

This is already the case since strictNullChecks was introduced in TypeScript 2.0 (in 2016). Even nowadays many popular libraries are lacking type-safety by not utilizing the strict compiler flags.

Library ecosystem would be divided into 2 which is not desirable.

This is already the case since strictNullChecks was introduced in TypeScript 2.0 (in 2016). Even nowadays many popular libraries are lacking type-safety by not utilizing the strict compiler flags.

@anilanar I've opened the proposal https://github.com/microsoft/TypeScript/issues/42357

@anilanar I've opened the proposal https://github.com/microsoft/TypeScript/issues/42357

I think we can close this one in favor of the proposal above


Check generated API docs during CI

This commit updates hack/verify-codegen.sh to verify that the generated API reference docs match any changes to the API and its documentation, and re-runs reference doc generation. It does not verify that licenses have been updated (this will be a separate commit).
Partially addresses https://github.com/tektoncd/pipeline/issues/6210
/kind misc
Submitter Checklist
As the author of this PR, please check off the items in this checklist:

n/a Has Docs included if any changes are user facing
n/a Has Tests included if any functionality added or changed
[x] Follows the commit message standard
[x] Meets the Tekton contributor standards (including
functionality, content, code)
[x] Has a kind label. You can add one by adding a comment on this PR that contains /kind <type>. Valid types are bug, cleanup, design, documentation, feature, flake, misc, question, tep
n/a Release notes block below has been updated with any user facing changes (API changes, bug fixes, changes requiring upgrade notices or deprecation warnings)
n/a Release notes contains the string "action required" if the change requires additional action from users switching to the new release

Release Notes
NONE

/lgtm

/lgtm

/test pull-tekton-pipeline-go-coverage-df


chore: add defensive code and better analytics for broadcast errors, …

Try out Leather build 1fab7d8 — Extension build, Test report, Storybook, Chromatic

This PR adds some extra analytics and defensive code to try and gather more insight into and prevent https://github.com/leather-wallet/extension/issues/5118

@kyranjamie : I was still unable to reproduce this issue, see comment here
Opening this as a draft as I have some Q's and in case adding this tracking and defensive code helps either identify / prevent this issue.

@pete-watters mind adding details about the new analytics (e.g. new events?) to the description? 🙏


🚀 [Feature Request] - Redesign the contact form and page

Is your feature request related to a problem ? Please describe. ✍
Enhancement

i an gssoc23 contributor please assign this issue to me @anmode
Describe briefly how you would implement this enhancement.
Some steps to implement this enhancement-
1. Step 1
2. Step 2
3. Step 3

Additional context or screenshots
Additional context
Are you contributing for a program?
GSSoC2023
Code of Conduct

[X] I have read and agree to the Contributing Guidelines of this project.

Following our new theme and color code!

thanks would complete in a week

@anmode I guess you have already assigned this work #380.

@anmode I guess you have already assigned this work #380.

You have been asked to add hover effects

Oh yess!! @ePSA-eJya No worries... i have more issues in my mind. or you can suggest too
see look at topemate.io and metro.tech

https://github.com/anmode/grabtern-frontend/issues/403 @ePSA-eJya ? wanna takeover

topemate.io

yeah ok

Oh yess!! @ePSA-eJya No worries... i have more issues in my mind. or you can suggest too see look at topemate.io and metro.tech

these links arent working i guess

Oh yess!! @ePSA-eJya No worries... i have more issues in my mind. or you can suggest too see look at topemate.io and metro.tech

these links arent working i guess
These are platform similar to us-
www.topmate.io and www.mentor.tech

please comment there @ePSA-eJya !!


Added count check when enum, to decrease count

Thanks for the PR @AzureByte! Just merged it in. Closes #16


m2isar.backends.etiss.instruction_writer: Generatation of literals > 64bit

C does only provide literal suffices for up to 64 bit large constants (ULL).
We sometimes need bitmasks which are 65 bits or larger: 0x1ffffffffffffffff
The only workaround I have in mind for this is building the literal in an etiss_int128 temp variable manually...

We could add generation code that splits a > 64 bit literal into two 64 bit literals and combines them back together. Alternatively, a hacky solution would be this: https://stackoverflow.com/a/33331273.

In C++ this exists: https://en.cppreference.com/w/cpp/language/user_literal. Irrelevant for us unfortunately as the JIT is only C.


Code "100" is still required in some dxf files, so keep reading after this code.

I found that in some dxf files, the code 100 needs to keep object read.
  0
XRECORD
  5
34F9
102
{ACAD_REACTORS
330
34F8
102
}
330
34F8
100
AcDbXrecord

Thank you for this, it was exactly the correct fix!


Update to Stryker 1.0

Waiting for https://github.com/stryker-mutator/stryker-net/pull/1759 to be reviewed before continuing with this work.


Pan opcode is reversed

pan=-100 should pan to left, instead it pans to right.

Never mind this issue it's a mistake, pan has another problem but I'll make it another issue


URLs in caniuse.com/opensearch.xml are outdated

Currently https://caniuse.com/opensearch.xml looks like this.
<?xml version="1.0" encoding="UTF-8"?>
<OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/">
  <ShortName>caniuse</ShortName>
  <LongName>Can I Use...</LongName>
  <Description>Search for feature support across browsers on caniuse.com</Description>

  <InputEncoding>UTF-8</InputEncoding>

  <Image width="16" height="16" type="image/png">http://caniuse.com/img/favicon-16.png</Image>
  <Image width="128" height="128" type="image/png">http://caniuse.com/img/favicon-128.png</Image>

  <Url type="text/html" method="get" template="http://caniuse.com/#search={searchTerms}"/>
  <Url type="application/opensearchdescription+xml" rel="self" template="http://caniuse.com/search.xml" />

  <moz:SearchForm>http://caniuse.com/</moz:SearchForm>
</OpenSearchDescription>

There are some problems:

http://caniuse.com/ should be https://caniuse.com/
#search= should be ?search=
search.xml should be opensearch.xml

Thanks for pointing this out! Have updated the file and it should look as expected now.

Thank you for the quick fix!


Update team.yml

Hi @kj5699 apparently your PR is breaking the code, please check the consistency for the PR you have submitted.


Error: (node:19) UnhandledPromiseRejectionWarning

Error: (node:19) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 9)
&
Error: (node:19) UnhandledPromiseRejectionWarning: Error: Handshake inactivity timeout
How to fix this?

I am also getting this, someone?
Error: (node:11244) UnhandledPromiseRejectionWarning: TypeError: Cannot convert undefined or null to object
    at Function.values (<anonymous>)
    at execute.then (mysql-async.js:5002:48)
Error: (node:11244) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by th promise which was not handled with .catch(). (rejection id: 1)
Error: (node:11244) [DEP0018] DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promisenon-zero exit code.

Which version of MySQL are you using?

I fixed it, my MySQL server disconnected the connection because of inactivity. I did put the timeout up and now it works.

Will add a timeout helper in 3.0.10.

That would be nice. Think this issue can be closed now forever ;)


SCMP error test creates packets with duplicate extensions

The SCMP error python integration test uses multiple One Hop Path extensions to trigger SCMP error SCMP::Extension::TOO_MANY_HOPBYHOP. This is problematic because, in the context of https://github.com/scionproto/scion/issues/2420, the offending packets are invalid for two reasons.
The test should be refactored to use different extensions. To do this in a clean way, it might require the allocation of experimental/test extension numbers to SCION (similarly to how https://tools.ietf.org/html/rfc7045#section-2 defines protocol numbers 253 and 254).

One Hop Path extensions are going away with new header (see here). Closing this.


Updated logs agent to 1.4.1 + added custom renovate rule to manage it going forward

Description
added custom renovate rule to bump cloud logs agent version
Release required?

[ ] No release
[x] Patch release (x.x.X)
[ ] Minor release (x.X.x)
[ ] Major release (X.x.x)

Release notes content

Run the pipeline
If the CI pipeline doesn't run when you create the PR, the PR requires a user with GitHub collaborators access to run the pipeline.
Run the CI pipeline when the PR is ready for review and you expect tests to pass. Add a comment to the PR with the following text:
/run pipeline

Checklist for reviewers

[ ] If relevant, a test for the change is included or updated with this PR.
[ ] If relevant, documentation for the change is included or updated with this PR.

For mergers

Use a conventional commit message to set the release level. Follow the guidelines.
Include information that users need to know about the PR in the commit message. The commit message becomes part of the GitHub release notes.
Use the Squash and merge option.

/run pipeline

:tada: This PR is included in version 2.3.4 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Update attack-path-reference.md

Submitting the changes to Defender for APIs Attack path Addtion

#please-close


Error messages limited to 1024 characters?

We are trying to debug and the error messages are often truncated:
{DS}sType = VK_STRUCTURE_TYPE_GRAPHICS_PIPELINE_CREATE_INFO
{DS}pNext = 0
{DS}flags = 0
{DS}stageCount = 2
{DS}pStages = 0x15f92e0
{DS}pVertexInputState = 0x15f8f58
{DS}pInputAssemblyState = 0x15f8f88
{DS}pTessellationState = 0
{DS}pViewportState = 0x15f8fc0
{DS}pRasterizationState = 0x15f8ff0
{DS}pMultisampleState = 0x15f9030
{DS}pDepthStencilState = 0x15f9098
{DS}pColorBlendState = 0x15f9060
{DS}pDynamicState = 0x15f9100
{DS}layout = 0x15f21c0
{DS}renderPass = 0x15ed3f0
{DS}subpass = 0
{DS}basePipelineHandle = 0
{DS}basePipelineIndex = 0
 {DS}pDynamicState (0x15f8f28)
  {DS}sType = VK_STRUCTURE_TYPE_PIPELINE_DYNAMIC_STATE_CREATE_INFO
  {DS}pNext = 0
  {DS}flags = 0
  {DS}dynamicStateCount = 2
  {DS}pDynamicStates = 0x15f3a00 (See individual array values below)
   {DS}pDynamicStates[0] = VK_DYNAMIC_STATE_VIEWPORT
   {DS}pDynamicStates[1] = VK_DYNAMIC_STATE_SCISSOR
 {DS}pColorBlendState (0x15f8f20)
  {DS}sType = VK_STRUCTURE_TYPE_PIPELINE_COLOR_BLEND_STATE_CREATE_INFO
  {DS}pNext = 0
  {DS}flags = 0
  {DS}lo

A cursory glance at the SDK reveals many places where 1024 byte buffers are hard coded. Not sure if this is really ideal?

Yes; this is not ideal and we are removing them when they come up but it hasn't been a high priority issue for now. If you feel like it should be please let us know.

Yes I think this should be high priority because it makes debugging hard.

Looks like Chris has a fix for this; assigning to Chris.

Any update?

A fix to the debug_report logging has been done and pushed to master branch.  Give this a try and let us know if you are still seeing the issue.

Ah yep, if you close an issue it would be nice if you reference the commit so I could see what was done :)

When you make the commit, you can actually do something like "Message, closes #bug id" and it will all happen automatically.


[BUG] Invalid Opentelemetry Data can cause ingestion to be stopped

Using DataPrepper to ingest metrics into OpenSearch it is possible to crash the metrics ingestion with invalid data. If data points without a value are sent, the null check in the OtelMetricsRawProcessor throws a NullPointerException. This crashes the current ingestion thread. Once all threads crash, no more data ingestion is possible. DataPrepper does not restart failed threads nor does it crash itself. Additional monitoring of the buffers or logs is required to detect this disfunctional state. Restarting DataPrepper resolves the issue until the next invalid data point is ingested. During restarts all data in the buffers is lost.
To Reproduce
We encountered the issue using the OpenTelemetry Collector to scrape Istio metrics from its Prometheus endpoint. Since the issue only happens occasionally and could not be forced, we provide an alternative approach, that generates the invalid metrics directly. Nevertheless, keep in mind, that the issue happened in a productive setup.
Steps to reproduce the behavior:

Run DataPrepper with a default metrics pipeline, e.g.:

    metrics-pipeline:
      source:
        otel_metrics_source:
          ssl: false
      processor:
        - otel_metrics_raw_processor:

Store the following OTEL metric as JSON in a file metric.json. Note, that there is no "value" field in the data point.

{
    "resourceMetrics": [
        {
            "resource": {
                "attributes": [
                    {
                        "key": "service.name",
                        "value": {
                            "stringValue": "basic-metric-service"
                        }
                    }
                ],
                "droppedAttributesCount": 0
            },
            "scopeMetrics": [
                {
                    "metrics": [
                        {
                            "description": "Example of a Counter",
                            "name": "requests",
                            "gauge": {
                                "dataPoints": [
                                    {
                                        "attributes": [],
                                        "startTimeUnixNano":<PHONE_NUMBER>000000000,
                                        "timeUnixNano":<PHONE_NUMBER>000001000
                                    }
                                ]
                            },
                            "unit": "1"
                        }
                    ],
                    "scope": {
                        "name": "example-exporter-collector",
                        "version": ""
                    }
                }
            ]
        }
    ]
}

Prepare a otel-collector docker image, e.g. docker pull otel/opentelemetry-collector:0.67.0 and point it to the DataPrepper instance using the following configuration:

receivers:
  otlp:
    protocols:
      grpc:
      http:
        cors:
          allowed_origins:
            - "*"

processors:
  batch:
    send_batch_size: 50
    timeout: 1s

exporters:
  logging:
    logLevel: debug
  otlp/metrics:
    endpoint: "<DataPrepper Endpoint>"
    tls:
      insecure_skip_verify: true
service:
  pipelines:
    metrics:
      receivers: [otlp]
      processors: [batch]
      exporters: [logging, otlp/metrics]

Run the Docker image with:

docker run -v "${PWD}/otelcol-config-sample.yaml":/otelcol-config-sample.yaml -p 4318:4318 otel/opentelemetry-collector:0.67.0 --config otelcol-config-sample.yaml

Send the invalid metric to the otel-collector:

curl -X POST -H "Content-Type: application/json" -d @metric-request-gauge.json http://localhost:4318/v1/metrics

The OpenTelemetry Collector should send the invalid metric to DataPrepper causing the NPE (stacktrace from DataPrepper 1.5):
2022-11-23T16:23:08,402 [metrics-pipeline-processor-worker-7-thread-1] ERROR com.amazon.dataprepper.pipeline.ProcessWorker - Encountered exception during pipeline metrics-pipeline processing
java.lang.NullPointerException: value cannot be null
	at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:907) ~[data-prepper.jar:1.5.0]
	at com.amazon.dataprepper.model.metric.ParameterValidator.lambda$validate$2(ParameterValidator.java:33) ~[data-prepper.jar:1.5.0]
	at java.util.Collections$SingletonList.forEach(Collections.java:4933) ~[?:?]
	at com.amazon.dataprepper.model.metric.ParameterValidator.validate(ParameterValidator.java:31) ~[data-prepper.jar:1.5.0]
	at com.amazon.dataprepper.model.metric.JacksonGauge$Builder.build(JacksonGauge.java:80) ~[data-prepper.jar:1.5.0]
	at com.amazon.dataprepper.plugins.processor.otelmetrics.OTelMetricsRawProcessor.lambda$mapGauge$0(OTelMetricsRawProcessor.java:89) ~[data-prepper.jar:1.5.0]
	at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) ~[?:?]
	at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625) ~[?:?]
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) ~[?:?]
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) ~[?:?]
	at java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) ~[?:?]
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) ~[?:?]
	at java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:578) ~[?:?]
	at com.amazon.dataprepper.plugins.processor.otelmetrics.OTelMetricsRawProcessor.mapGauge(OTelMetricsRawProcessor.java:91) ~[data-prepper.jar:1.5.0]
	at com.amazon.dataprepper.plugins.processor.otelmetrics.OTelMetricsRawProcessor.doExecute(OTelMetricsRawProcessor.java:54) ~[data-prepper.jar:1.5.0]
	at com.amazon.dataprepper.model.processor.AbstractProcessor.lambda$execute$0(AbstractProcessor.java:55) ~[data-prepper.jar:1.5.0]
	at io.micrometer.core.instrument.composite.CompositeTimer.record(CompositeTimer.java:65) ~[data-prepper.jar:1.5.0]
	at com.amazon.dataprepper.model.processor.AbstractProcessor.execute(AbstractProcessor.java:55) ~[data-prepper.jar:1.5.0]
	at com.amazon.dataprepper.pipeline.ProcessWorker.run(ProcessWorker.java:62) ~[data-prepper.jar:1.5.0]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:264) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130) ~[?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630) ~[?:?]
	at java.lang.Thread.run(Thread.java:832) ~[?:?]

Expected behavior
DataPrepper should not lose a worker thread to faulty input data. The metric should be dropped increasing an appropriate counter in the metrics. Optionally a log entry can be issued at DEBUG or INFO level.
Environment (please complete the following information):

OS: [e.g. Ubuntu 20.04 LTS]
DataPrepper versions 1.5 and 2.0 were tested. Both with local binaries and the provided Docker images.

Additional context
The issue is cause by declaring the value field as "REQUIRED_NON_NULL_VALUES" in the JacksonGauge: https://github.com/opensearch-project/data-prepper/blob/01228357aa9f5c6f8099887b3c90d15e892c769c/data-prepper-api/src/main/java/org/opensearch/dataprepper/model/metric/JacksonGauge.java#L25-L29.
Since the validation exceptions are not called and handled, the worker thread crashes. It would be nice, if a different behaviour on validation errors would be implemented as indicated in expected behaviour.

Taking a look

Thanks for reporting these issues and the detailed steps!
I created #2185 to track the Trace ingestion issue. The problem here is a little more complicated than with metrics and might require a different solution.

The solution that @kkondaka has in #2176 for metrics is to drop the metrics data in the otel_metrics_raw_processor when it does not conform to our expectations. Additionally it will include a metric to track this. I believe with some modifications this will work for the metrics issue.


Add "City from" column in speaker list

We probably need to be able to customize which column should be showed. I am not sure of the best way to do that...

The transportation feature have been removed in v2


The problem of calculating the time when rewinding on the progress bar

I rotate the video 90 degrees using transform: rotate(90 deg); and everything seems to work well, but when rewinding the video (by clicking on the progress bar), it does not calculate the time.
Experimenting a little, I realized that when calculating, he confuses the length and height of the progress bar.
How do I fix this?

Oh, I kind of fixed it. I changed the lines:
from:
// Determine percentage, if already visible
      let percent = 0;
      const clientRect = this.elements.progress.getBoundingClientRect();
      if (is.event(event)) {
        percent = 100 / clientRect.width * (event.pageX - clientRect.left);
      } else if (hasClass(tipElement, visible)) {
        percent = parseFloat(tipElement.style.left, 10);
      } else {
        return;
      }

to:
// Determine percentage, if already visible
        let percent = 0;
        const clientRect = this.elements.progress.getBoundingClientRect();
        if (is.event(event)) {
          percent = 100 / clientRect.height * (event.pageY - clientRect.top);
        } else if (hasClass(tipElement, visible)) {
          percent = parseFloat(tipElement.style.left, 10);
        } else {
          return;
        }


”Gălești”, ”Adrianu Mare”, ”Adrianu Mic”, ”Bedeni” are listed in the drop-down menu

Description:
When user writes ”Gălești”, ”Adrianu Mare”, ”Adrianu Mic”, ”Bedeni” the locations appear in the drop-down menu next to the comune and the county which is a part according to the law.
Precondition:
The website is up an running.

Step 1
Write in the search bar "Gălești"

Expected results
The location appears in the drop-down menu as "Sat Gălești, MUREȘ (Gălești)".

Step 2
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 3
Write in the search bar "Adrianu Mare"

Expected results
The location appears in the drop-down menu as "Sat Adrianu Mare, MUREȘ (Gălești)".

Step 4
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 5
Write in the search bar "Adrianu Mic"

Expected results
The location appears in the drop-down menu as "Sat Adrianu Mic, MUREȘ (Gălești)".

Step 6
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 7
Write in the search bar "Bedeni"

Expected results
The location appears in the drop-down menu as "Sat Bedeni, MUREȘ (Gălești)".


Add merging multiple xccovreport

Issue: Using xcov with multiple test targets within one scheme only generates the result of the last test instead of the combined result of all the targets.
Because xcov currently uses only latest coverage and basically overwrites the previous tests, having multiple coverage reports wouldn't even work. So, we should use xcrun xccov merge to merge coverage reports and use them to generate output instead.
In process_xcresults, we take parser.export_xccovreport/archive and rename them because I've noticed that parser generates files with name action_0. But if there are multiple xccovreports in xcresult_paths, they will all get overwritten as action_0. When there are multiple results, we merge them and save them to output_path/out.xccovreport and return that as the result, otherwise just return the usual result array.
I'm not well acquainted with ruby and xcov's design, so if there's problem, please lmk.
This PR is inspired by this previous PR, but due to its inactivity and because it wasn't working, I created new PR.

Any update on this PR? It looks like there are 3 outstanding PRs all trying to fix this same issue. The other ones did not fix the issue for me, but this one did, so I'd love to see this get merged.

Hi @CorbinMontague, thanks for raising the issue. I think this is caused by xcov's previous bug on calculating the coverage percentage. It seems like it was fixed few months ago, after I committed the last change. I will rebase this PR and hopefully it will work again! 😄

@mininny Thanks for the quick update, that definitely fixed it! Now if only we could get a contributor to review this and help get this into the next xcov release 😉

Release in https://github.com/fastlane-community/xcov/releases/tag/v1.7.5
Thanks so much for this fix!


Feature Request - Scrapbook & Stack Display Block Caching

Neither the Scrapbook nor the Stack Display Block support caching, so using either of these features will result in the inability to use full page cache, even if the blocks contained within the scrapbook and stack support caching.
https://github.com/concrete5/concrete5/blob/develop/web/concrete/blocks/core_stack_display/controller.php#L19
https://github.com/concrete5/concrete5/blob/develop/web/concrete/blocks/core_scrapbook_display/controller.php#L20

Looks like we can add Area Layout to this list as well... All the Proxy classes suffer from the same issue.
What I'm thinking would make sense, is modify useBlockCache to ask the block if it can be cached. In the case of these three proxy blocks, the blocks would loop through their child blocks and determine if all of their blocks can be cached. If all the children can be cached, we can cache the area as a whole... thoughts?

I think it's prohibitively expensive to do this for the core_area_layout block. I think we just need to assume that one is uncacheable – unless we bring in a special way to force caching at the area level through the UI (which I think is probably a better way to go)
But yes, definitely the scrapbook display ought to look at the original block and return the block controller's caching methods, that one should be done.
Again, not really sure about core stack display either – but that one we could probably get away with looping through the child blocks and if all of them are cacheable returning true for the various cache methods.

I'll try and benchmark a few scenarios to test overhead vs payoff.
I think the advantage of getting full page caching will fat outweigh the overhead... But lets see if I cangell get some good metrics.

I would say that's probably the case too – I just don't want to have to
re-query all the blocks again in order to get whether they should be used
in the cache. Because then if they can't be you've done all that extra work
for nothing. But in theory with the way our page requests blocks and
stashes them in the request cache there might not be any overhead to it.
On Thu, Jul 30, 2015 at 3:36 PM, TimDix<EMAIL_ADDRESS>wrote:

I'll try and benchmark a few scenarios to test overhead vs payoff.
I think the advantage of getting full page caching will fat outweigh the
overhead... But lets see if I cangell get some good metrics.
—
Reply to this email directly or view it on GitHub
https://github.com/concrete5/concrete5/issues/2825#issuecomment-126510787
.

Also, consider what i suspect is the typical scenario: most of the blocks
can be cached. By caching the layout area, you dont even need to initialize
any of the child blocks on sunsequent requests.
On Jul 30, 2015 6:42 PM, "Andrew Embler"<EMAIL_ADDRESS>wrote:

I would say that's probably the case too – I just don't want to have to
re-query all the blocks again in order to get whether they should be used
in the cache. Because then if they can't be you've done all that extra work
for nothing. But in theory with the way our page requests blocks and
stashes them in the request cache there might not be any overhead to it.
On Thu, Jul 30, 2015 at 3:36 PM, TimDix<EMAIL_ADDRESS>wrote:

I'll try and benchmark a few scenarios to test overhead vs payoff.
I think the advantage of getting full page caching will fat outweigh the
overhead... But lets see if I cangell get some good metrics.
—
Reply to this email directly or view it on GitHub
<
https://github.com/concrete5/concrete5/issues/2825#issuecomment-126510787>
.

—
Reply to this email directly or view it on GitHub
https://github.com/concrete5/concrete5/issues/2825#issuecomment-126512158
.

Ok, so ran some numbers, and I think they put caching these things on top, but I also think your suggestion is solid and we probably do both.
https://gist.github.com/TimDix/fdcd50c65c7d891e2f82
Block caching is enabled for all tests.
So Trial 1 and 3 are our controls, area_layout caching is disabled so doesn't affect the outcome.
Trial 1: All blocks within the area layout can be cached - This is the scenario I'd like to optimize.
Time per request:       1138.085 [ms] (mean)
Trial 2: All blocks within the area cannot be cached.
Time per request:       1013.078 [ms] (mean)
Saves an average of 125ms per request
Trial 3: All blocks within the area layout cannot be cached, this is with area_layout caching disabled.
Time per request:       1366.698 [ms] (mean)
Trial 4: All blocks within the area layout cannot be cached, with area_layout caching enabled therefore the potential is that the overhead of going through and finding out if this can be cached might outweigh the gains in Trial 1.
Time per request:       1366.438 [ms] (mean)
The differences between Trial 3 and 4 are negligible. The time to recursively dive into the blocks and determine if they can be cached takes between 5-12ms in my environment (based on how many blocks / how deep) however - the overhead time seems to be recouped because those blocks will eventually need to be instantiated anyway so it's a wash.
However, in the case where all the blocks inside an area_layout can be cached (trial 2) there's a significant performance optimization.
I propose the following:
Treat Area_layout (and the rest of the proxy blocks) similar to how we handle Full Page Caching. Area_Layout Caching can be one of the following:

Globally Disabled - Must be turned on per area.
Globaly Enabled - If blocks support it.
Globaly Enabled - in all cases

And then on an area by area basis, have the ability to check:

Use Global Setting
Do NOT cache this layout
Cache this layout

Oh, and another very significant reason to implement this... if the area_layouts can be cached, they more pages can take advantage of Enable Full Page Caching when Blocks Allow.

We really need this as well. I incidentally created almost the exact same code for the core_area_layout and I've had looking at GET parameters to determine caching on my list since may 2015.

Well, almost three years here ;) Seems to be still in development? core_area_layout breaks caching in all my projects, as I use it very often. How is the status?

I have taken a stab at this. Can someone review this and offer some feedback?
https://github.com/concrete5/concrete5/pull/6477


EDE information missing from reply to upstream

Describe the bug
Asked this question in the unbound mailing list (https://lists.nlnetlabs.nl/pipermail/unbound-users/2023-April/008069.html).
George (Yorgos) Thessalonikefs answered this is possible by using "EDE codes for DNSSEC validation failures to the SERVFAIL answers".
The FTL developer has added code to evaluate these codes, however, the results are inconsistent.
After investigating this, it turns out the EDE codes are NOT always present in the reply, the pi-hole topic has an attachment whith extended logging from pihole-FTL (= dnsmasq) and a pcap file that clearly shows the missing EDE information. The pi-hole topic, start reading from here: https://discourse.pi-hole.net/t/dnssec-discussion-support-for-proxy-dnssec/62217/17
The pcap file and log is found in the next entry (18)
To reproduce
run unbound with "ede: yes", check the replies from unbound -> downstream.

dig www.dnssec-failed.org (on linux host) -> OK
browse (Microsoft Edge or Firefox) to www.dnssec-failed.org -> fail

Expected behavior
return EDE information for all queries, if available.
the strange thing is it works (EDE is returned) for dig requests (dig A www.dnssec-failed.org and dig AAAA www.dnssec-failed.org), but fails when a browser is making the request (open www.dnssec-failed.org in Microsoft edge and / or Firefox)
System:

Unbound version: 1.17.2 (compiled from GitHub source)
OS: raspbian on raspberry pi 3B (Linux raspberrypi 6.1.21-v7+ #1642 SMP Mon Apr  3 17:20:52 BST 2023 armv7l GNU/Linux)
unbound -V output:

Version 1.17.2
Configure line: --prefix=/usr --sysconfdir=/etc --disable-static --enable-tfo-client --enable-tfo-server --with-libevent --with-libhiredis --enable-cachedb --with-pidfile=/run/unbound.pid
Linked libs: libevent 2.1.12-stable (it uses epoll), OpenSSL 1.1.1n  15 Mar 2022
Linked modules: dns64 cachedb respip validator iterator
TCP Fastopen feature available

Additional information
The goal is to run pihole-FTL (= dnsmasq) with option proxy-dnssec. This appears to be working, but the EDE information isn't always present.

is this (missing EDE information) related to this PR https://github.com/NLnetLabs/unbound/pull/802 (add validation EDEs to queries where the CD bit is set)?

This problem has been solved by adding code to pihole-FTL, which is the latest dnsmasq + features (to make pi-hole the better solution).
The PR (ready to be merged) can be found here:
https://github.com/pi-hole/FTL/pull/1551
The conversation can be found here:
https://discourse.pi-hole.net/t/dnssec-discussion-support-for-proxy-dnssec/62217 (lots of trial and errors)
The summary (what is needed for both pi-hole and unbound to make it work) can be found here:
https://discourse.pi-hole.net/t/dnssec-discussion-support-for-proxy-dnssec/62217/36

I see that the issue is resolved and in your case it was dnsmaq and EDNS support.
There is another (known) issue that you probably won't stumble upon in your case (I assume that dnsmasq is used for cached answers to clients) and that is EDEs for Unbound's cached answers.
This will land on the next version with https://github.com/NLnetLabs/unbound/pull/759 and https://github.com/NLnetLabs/unbound/pull/790.

When will these PRs be merged into github master, so I can compile with these improvements?
I'm getting unreliable / inconsistent results when using a browser (firefox / edge). dig always produces the correct result. running unbound with these improvements would exclude a possible cache problem...
caching: unbound +redis, dnsmasq cache-size=0


Uncaught ReferenceError: colorSnippet is not defined

Hi there,
I just recently upgraded to 1.1.9 and i'm getting this error when I try to edit values in the object. Didn't get this error in 1.1.7.

@usulpro any help would be greatly appreciated!

Same error here

Thanks guys for reporting this!
fixed in 1.1.10 :)


Switch to native ParaView MPI parallelization with pvserver

Currently, we spawn multiple subprocesses of pvpython which process their block of frames. It requires the management code (multiprocessing pool + subprocess), and it is not super scalable.
I am convinced that the parallelization implemented in pvserver is faster, but at least one would not have to maintain separate code for job management.
In this case, the architecture would look like this:

Starting pvserver with mpirun (e.g. on HPC cluster)
Connecting from gwpv to pvserver  via TCP using Connect() method
Rendering frames sequentially, and pvserver takes care (mostly) of parallelizing the rendering

It would require having a parallel-aware data source, which I believe is not hard to implement. ParaView says in the documentation, that with the D3 filter even non-parallel-aware data sources can benefit from using pvserver.
Here is the documentation page: https://docs.paraview.org/en/latest/ReferenceManual/parallelDataVisualization.html#paraview-architecture

So I understand correctly that this means rendering one frame at a time, and parallelizing that? Or does pvserver also support rendering multiple frames in parallel?

I don't know for sure, but I believe that pvserver can also handle multiple clients concurrently. That would mean that we can render multiple frames in parallel while utilizing parallelization of the render inside the frame. And leaving the subprocess code as-is, but rendering the frames using pvserver.
Is that often useful to render frames concurrently?

#Yes it is quite important to render multiple frames in parallel, since that's what is often called "embarrassingly parallel" -- the frames don't depend on each other, so provided the computational resources are not constrained they parallelize perfectly. On the other hand, parallelization within each frame is limited by how well it is implemented. Doing both forms of parallelization is only useful when you have more cores available than you have frames to render, or when you're constrained by other resources like RAM or GPU memory.


v3.3.0

Add Parallel::collect() and Parallel::finish_in() to allow for generic containers. (#9)

Closing and reopening to run CI


Fix 64bit fields handling in 32Bit environment

This patch adds fix to handle 64bit fields of AVTPDU in 32bit environment.
AVTPDU fields are represented by bitmap and mask is used to get value from the
bits within 'bitmap'.
Current macro for shifting bits is:
#define BIT(n)			(1UL << n)
In 32-bit system, size of the 'unsigned long' type is 32-bit while it is 64-bit
on 64-bit systems. This causes a bug when handling some CRF fields. This patch
fixes the issue by using 'unsigned long long' instead since it is 64-bit in
both 32 and 64-bit system.
Signed-off-by: Rajvi Jingar<EMAIL_ADDRESS>

Looks good to me. If I don't see any other comments, I'm merge tomorrow.

This looks good to me too.


Documentation on plugins

Hello,
I'm starting to work on adding plugins to Scribe, and so I thought I'd write down the notes I've taken so far so others could look and correct/add. Eventually I'd like to add them to the source/wiki, but I'm still working on them and I haven't figured out which yet.

Q: How to add Commands to Scribe?

Required API for any Command added to Scribe
Command.execute = run the command
Command.queryState = whether the command has already been applied to the selection
Command.queryEnabled = whether a command is available to use

How does one "patch" a command with CommandPatch?
If a command already exists in document.execCommand, creating a CommandPatch for it will enable that command (and wrap it in a transactionManager). It will otherwise use the default command.

Scribe has a getCommand function that automatically creates a new command if necessary

You can see CommandPatches in plugins/core/patches

Be nice to say a bit more about the APIs for commands and that you can patch a command by replacing the default APIs with your own but otherwise this looks like a good start!


chore(master): release 1.3.0

:robot: I have created a release beep boop
1.3.0 (2023-03-14)
Features

enable auto-merge (eab0970)

Miscellaneous

deps: update postgres docker tag to v15 (f68c60a)
deps: update quay.io/keycloak/keycloak docker tag to v20.0.5 (9cb71ff)

This PR was generated with Release Please. See documentation.

:robot: Release is at https://github.com/wayofdev/docker-project-services/releases/tag/v1.3.0 :sunflower:


Dreamview: display all detected traffic light status

Also extract traffic light & stop sign codes to traffic_control and let dreamview&offlineview use the same methods to render them.

Is there any method to change traffic lights in the hand-mode? For example, the car in simcontrol is moving straight and meets the traffic light, then stopped. How to change the light to continue the movement?


subsetMaf Lost Columns if clinQuery Result is One Row

One out of nine patients is not whole genome duplicated.
><EMAIL_ADDRESS>   Tumor_Sample_Barcode Purity Ploidy WGD TP53_LOH Inferred_Gender Microsatellite_Instability Group Cohort
1:       TCGA-BA-5149-P   0.52   3.10 Yes      Yes            Male                        MSS Young   TCGA
2:       TCGA-BA-6872-P   0.58   3.21 Yes      Yes            Male                        MSS Young   TCGA
3:       TCGA-BA-6873-P   0.41   3.71 Yes       No            Male                        MSS Young   TCGA
4:       TCGA-CN-4737-P   0.47   3.32 Yes      Yes            Male                        MSS Young   TCGA
5:       TCGA-CR-7382-P   0.22   2.11  No       No            Male                        MSS Young   TCGA
6:       TCGA-CV-7090-P   0.38   3.21 Yes       No            Male                        MSS Young   TCGA
7:       TCGA-CV-7180-P   0.27   3.33 Yes      Yes            Male                        MSS Young   TCGA
8:       TCGA-CV-7255-P   0.67   3.44 Yes      Yes          Female                        MSS Young   TCGA
9:       TCGA-CV-7416-P   0.64   2.63 Yes      Yes          Female                        MSS Young   TCGA

Subsetting by WGD, all columns except the first are lost.
> TCGANotWGD <- subsetMaf(TCGAMAF, clinQuery = "WGD == 'No'")
-subsetting by clinical data..
--1 samples meet the clinical query
-Processing clinical data
><EMAIL_ADDRESS>   Tumor_Sample_Barcode
1:       TCGA-CR-7382-P

Thanks for the issue. Let me know if this helps.
R is such a weird language sometimes.

Facing same issue but something change
The code is not reading the column name in my clinical data
I am getting error ' subsetting by clinical data..
Error in .checkTypos(e, names_x) :
Object 'Histopathological_grade' not found amongst Tumor_Sample_Barcode

And when I used ' laml_m4 = subsetMaf(maf = laml, clinQuery = "clinical_data$Histopathological_grade%in% 'I'")
it is giving me wrong information

Hi,
You dont need to say clinical_data$Histopathological_grade. Just use the column name.
laml_m4 = subsetMaf(maf = laml, clinQuery = "Histopathological_grade%in% 'I'")

And make sure the column names do exist in the clinical data.

Is it possible to share a reproducible example?

Is it possible to share a reproducible example?

Sorry I dont understand

Can you share a small example file with which I can reproduce your error? It is difficult for me to guess what is wrong.
here is the file
[](url
clinical_data.csv
)

Hey! I am experiencing the same issue.
maf_subset <- subsetMaf(mafs_all_overlap, clinQuery  = "Treatment%in%'both'")

<EMAIL_ADDRESS>
...
Tumor_Sample_Barcode  Normal_ID    Responder                Treatment

shows the column is there and I in other plots above in my script I could plot this condition.
I also tried with
maf_subset <- subsetMaf(mafs_all_overlap, clinQuery  = "Treatment == 'both'")
But didn't work either.


Remove misc_scripts/jira/*

Description
Remove the script which used to be used to create Core release tasks on Jira.
Use case
The script is not used any more + is at least partly out of date.
Benefits
Less cruft in the repository.
Possible Drawbacks
None.
Testing
Have you added/modified unit tests to test the changes?
No, the script in question has not been covered by the test suite.
If so, do the tests pass/fail?
N/A
Have you run the entire test suite and no regression was detected?
Yes, no regression detected.

Coverage remained the same at 81.467% when pulling b2845fe5db5b1732c19f062d479f55cffe6e6511 on remove_jira_script into b6ff4fc951b88dbcf1668bb881d5b77333bac346 on master.


[Access Request] report 790 "Calculate Inventory" AddZeroQtySKU

Could you please remove the Scope('OnPrem') of the procedure AddZeroQtySKU and make it accesible for Report Extensions by keeping at least the procedure protected?
    //+Change
    //-[Scope('OnPrem')]
    //-procedure AddZeroQtySKU()
    protected procedure AddZeroQtySKU()
    //-Change
    var
        SKU: Record "Stockkeeping Unit";
        ShouldAddZeroQty: Boolean;
        IsHandled: Boolean;
    begin
        ...
    end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.
Build ID: 45938.

As you have requested this change AFTER code freeze for 21.0, this change is available in 22.x only.


🚀 Feature: Add support for additional runtimes like Bun and Deno

Feature Request Checklist

[X] I have read and agree to Mocha's Code of Conduct and Contributing Guidelines
[X] I have searched for related issues and issues with the faq label, but none matched my issue.
[ ] I want to provide a PR to resolve this

Overview
As mentioned in https://github.com/mochajs/mocha/issues/5065#issuecomment-1967346075, https://github.com/wintercg/proposal-common-minimum-api/issues/68 and https://twitter.com/_nicojs/status/1762508703863894472:

Nicholas C. Zakas @slicknet
What I want: To write JavaScript tests once and be able to run them across Node.js, Bun, and Deno.
Problem: Bun and Deno have built-in test runners you have to import from to run tests. I use Mocha. This doesn't work.
Solution: ???

There is a need for a cross-runtime testing library.
Mocha already supports browsers and node.js, what would it take to support eg. Deno and Bun as well?
Suggested Solution
Research what would be needed to support Bun and Deno and evaluate the feasibility.
Alternatives
Standardizing on a shared built in test API and move away from Mocha: https://github.com/wintercg/proposal-common-minimum-api/issues/68
This would only solve it for those runtimes who are compliant with the WinterCG proposal though and not work for eg browsers. It also would mean running the tests in multiple different implementations of the same test framework, which can have unexpected consequences.
Additional Info
No response

One thing I noticed when running Mocha on Bun: When there is a test failure, Mocha's exit code is 0, making it appear that CI is passing if you don't look at the console output.

👍 we've been chatting about this off-and-on for most of this year. We're generally in favor.
I think in order for this to happen, we'd need to roll out slowly. Here's a strategy proposal:

Add examples for Bun and Deno to https://github.com/mochajs/mocha-examples
Add executing tests for Bun and Deno to Mocha's CI

Since these will probably be failing at first, perhaps just for the main branch & on PRs with a particular label?

See what CI run failures arise from that, and file standalone issues
For each of Bun and Deno, once they have no CI failures, announce them as experimentally available in production
Wait some time to gather user input
Announce them as officially supported in production

This is lower priority than work on Mocha 11 (https://github.com/mochajs/mocha/milestone/65) or 12 (https://github.com/mochajs/mocha/milestone/66), but would be great down the road.


Error when running in Docker

Hello! I am running this in docker on Unraid 6.9.2 and getting the following error:
Traceback (most recent call last):
File "/usr/local/lib/python3.10/runpy.py", line 196, in _run_module_as_main
return _run_code(code, main_globals, None,
File "/usr/local/lib/python3.10/runpy.py", line 86, in _run_code
exec(code, run_globals)
File "/usr/src/app/transmission_influxdb/main.py", line 41, in <module>
main()
File "/usr/src/app/transmission_influxdb/main.py", line 16, in main
transmission_clients: List[transmission.TransmissionClient] = [transmission.TransmissionClient(x) for x in config.get_torrent_client_configs()]
File "/usr/src/app/transmission_influxdb/config.py", line 79, in get_torrent_client_configs
_load_config_if_necessary()
File "/usr/src/app/transmission_influxdb/config.py", line 11, in _load_config_if_necessary
config_cache = json.load(f)
File "/usr/local/lib/python3.10/json/__init__.py", line 293, in load
return loads(fp.read(),
File "/usr/local/lib/python3.10/json/__init__.py", line 346, in loads
return _default_decoder.decode(s)
File "/usr/local/lib/python3.10/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/local/lib/python3.10/json/decoder.py", line 353, in raw_decode
obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 2 column 38 (char 39)

Here is my config file:
{
  "seconds_between_collections": 5,  // time to wait between finished transmission scrapes
  "influxdb": {
    "host_addr": "http://<IP_ADDRESS>",
    "host_port": 8086,
    "use_ssl": false,
    "verify_ssl": false,
    "database": "transmission",  // database will be created if it doesn't exist (don't change if using provided grafana dashboard)
    "username": "root",  // if authentication is disabled on influxdb, leave user/pass as-is
    "password": "root"
  },
  "transmission_clients": [  // Specify as many as desired
    {
      "name": "trmn-buffer-0",  // The name used to tag db datapoints with for this transmission daemon. Useful to make unique when you have more than one client
      "rpc_addr": "http://<IP_ADDRESS>",
      "rpc_port": 1001,
      "rpc_path": "/transmission/rpc",
      "rpc_user": "HIDDEN",
      "rpc_password": "HIDDEN",
      "rpc_verified_tls": false,  // note that unverified ssl/tls (such as with self-signed cert) is not currently supported
      "rpc_timeout": 60,  // how long to allow an RPC request to take before timing out with an error
      "disable_individual_torrent_collection": false  // optional boolean which can disable making points for individual torrents (significantly reduces influxdb usage but some dashboard graphs won't work)
    },
    {
      "name": "trmn-library-0",  // The name used to tag db datapoints with for this transmission daemon. Useful to make unique when you have more than one client
      "rpc_addr": "http://<IP_ADDRESS>",
      "rpc_port": 9091,
      "rpc_path": "/transmission/rpc",
      "rpc_user": "HIDDEN",
      "rpc_password": "HIDDEN",
      "rpc_verified_tls": false,  // note that unverified ssl/tls (such as with self-signed cert) is not currently supported
      "rpc_timeout": 60,  // how long to allow an RPC request to take before timing out with an error
      "disable_individual_torrent_collection": false  // optional boolean which can disable making points for individual torrents (significantly reduces influxdb usage but some dashboard graphs won't work)
    },
    {
      "name": "trmn-radarr-1",  // The name used to tag db datapoints with for this transmission daemon. Useful to make unique when you have more than one client
      "rpc_addr": "http://<IP_ADDRESS>",
      "rpc_port": 1011,
      "rpc_path": "/transmission/rpc",
      "rpc_user": "HIDDEN",
      "rpc_password": "HIDDEN",
      "rpc_verified_tls": false,  // note that unverified ssl/tls (such as with self-signed cert) is not currently supported
      "rpc_timeout": 60,  // how long to allow an RPC request to take before timing out with an error
      "disable_individual_torrent_collection": false  // optional boolean which can disable making points for individual torrents (significantly reduces influxdb usage but some dashboard graphs won't work)
    },
    {
      "name": "trmn-radarrUHD-1",  // The name used to tag db datapoints with for this transmission daemon. Useful to make unique when you have more than one client
      "rpc_addr": "http://<IP_ADDRESS>",
      "rpc_port": 1012,
      "rpc_path": "/transmission/rpc",
      "rpc_user": "HIDDEN",
      "rpc_password": "HIDDEN",
      "rpc_verified_tls": false,  // note that unverified ssl/tls (such as with self-signed cert) is not currently supported
      "rpc_timeout": 60,  // how long to allow an RPC request to take before timing out with an error
      "disable_individual_torrent_collection": false  // optional boolean which can disable making points for individual torrents (significantly reduces influxdb usage but some dashboard graphs won't work)
    },
    {
      "name": "trmn-sonarr-1",  // The name used to tag db datapoints with for this transmission daemon. Useful to make unique when you have more than one client
      "rpc_addr": "http://<IP_ADDRESS>",
      "rpc_port": 1021,
      "rpc_path": "/transmission/rpc",
      "rpc_user": "HIDDEN",
      "rpc_password": "HIDDEN",
      "rpc_verified_tls": false,  // note that unverified ssl/tls (such as with self-signed cert) is not currently supported
      "rpc_timeout": 60,  // how long to allow an RPC request to take before timing out with an error
      "disable_individual_torrent_collection": false  // optional boolean which can disable making points for individual torrents (significantly reduces influxdb usage but some dashboard graphs won't work)
    },
    {
      "name": "trmn-sonarrUHD-1",  // The name used to tag db datapoints with for this transmission daemon. Useful to make unique when you have more than one client
      "rpc_addr": "http://<IP_ADDRESS>",
      "rpc_port": 1022,
      "rpc_path": "/transmission/rpc",
      "rpc_user": "HIDDEN",
      "rpc_password": "HIDDEN",
      "rpc_verified_tls": false,  // note that unverified ssl/tls (such as with self-signed cert) is not currently supported
      "rpc_timeout": 60,  // how long to allow an RPC request to take before timing out with an error
      "disable_individual_torrent_collection": false  // optional boolean which can disable making points for individual torrents (significantly reduces influxdb usage but some dashboard graphs won't work)
    }
  ]
}

remove the comments to make it valid json. You can use some json linter to validate that you have valid json: https://duckduckgo.com/?t=ffab&q=json+linter&ia=answer

That did it, thanks!


Drop Ruby 2.6 runtime support

This PR drops Ruby 2.6 runtime support. The next release will be the time to drop Ruby 2.6 support:

https://www.ruby-lang.org/en/downloads/branches/
https://docs.rubocop.org/rubocop/compatibility.html#support-matrix

CRuby 2.6 compatible JRuby 9.3 will be dropped and CRuby 2.7 compatible JRuby 9.4+ is required.

Before submitting the PR make sure the following are checked:

[x] The PR relates to only one subject with a clear title and description in grammatically correct, complete sentences.
[x] Wrote good commit messages.
[ ] Commit message starts with [Fix #issue-number] (if the related issue exists).
[x] Feature branch is up-to-date with master (if not - rebase it).
[x] Squashed related commits together.
[x] Added tests.
[x] Ran bundle exec rake default. It executes all tests and runs RuboCop on its own code.
[x] Added an entry (file) to the changelog folder named {change_type}_{change_description}.md if the new code introduces user-observable changes. See changelog entry format for details.

Looks good. Thanks!

Note that Ruby 2.6 is still the system ruby version on the latest macos: https://apple.stackexchange.com/questions/107853/which-versions-of-mac-os-x-have-ruby-installed-by-default/107974#107974
Thus, this introduces complications for projects like Homebrew that target system ruby on macos systems. In light of this, would the rubocop folks consider extending support a bit longer than might be typical of EoL Ruby versions?

Why would Homebrew need to run RuboCop on Ruby 2.6?


Update Ubuntu installation instructions with lsb_release -rs

Short PR: the installation instructions can be greatly simplified and automated by using $(lsb_release -rs) instead of manually selecting the version number.

@jlaundry : Thanks for your contribution! The author(s) have been notified to review your proposed change.

That certainly does shorten the instructions. However, I would not support doing this. It would lead to questions from a lot of users about why their installation fails on an unsupported version. People often skip the system requirements and assume the latest version (or an old version) of Ubuntu (and others) is supported as soon as Ubuntu releases it. Keeping the version reference in the installation instructions makes it more obvious when users try to walk through them and realize instructions don't exist for their version. We already get questions from people who ignore even the obviousness of the current instructions when they lack a reference to a version they want to install on.
Regards,
David

Hi @David-Engel, I understand your position, but I don't think we can solve for users who blatantly ignore prerequisites. However, not being able to 'obviously' automate deployment is a real challenge for teams I work with.
If you do want to have a hard check in the deployment process, you could add a check like:
if ! [[ "16.04 18.04 20.04 21.04" == *"$(lsb_release -rs)"* ]];
then
    echo "Ubuntu $(lsb_release -rs) is not currently supported.";
    exit;
fi

Also, please consider that other Microsoft teams have standardised on the dynamic approach:

https://docs.microsoft.com/en-us/cli/azure/install-azure-cli-linux?pivots=apt#option-2-step-by-step-installation-instructions
https://docs.microsoft.com/en-us/azure/azure-functions/functions-run-local?tabs=v4%2Clinux%2Ccsharp%2Cportal%2Cbash%2Ckeda#install-the-azure-functions-core-tools
https://docs.microsoft.com/en-us/defender-cloud-apps/discovery-docker-ubuntu?tabs=ubuntu#step-2--on-premises-deployment-of-your-machine

If you do want to have a hard check in the deployment process, you could add a check like:
if ! [[ "16.04 18.04 20.04 21.04" == *"$(lsb_release -rs)"* ]];
then
    echo "Ubuntu $(lsb_release -rs) is not currently supported.";
    exit;
fi

I like that. If you update your PR, I'll approve the change. Thanks!

@jlaundry : Thanks for your contribution! The author(s) have been notified to review your proposed change.

#sign-off


User ID input does not reset to hidden after closing create modal

Describe the bug
When I open the Create User Modal, the ID input starts out hidden because the ID gets autogenerated from the display name. You can click Edit Username to open the input to edit yourself.
To Reproduce

start Automate UI
navigate to https://a2-dev.test/settings/users
open the Create User Modal
click Edit Username
close the modal
open the modal again
the Username input will still be open

Expected behavior
The Username input should always reset to hidden on modal close
Versions

Browser: chrome
Automate Build Number:<PHONE_NUMBER>2134

@bcmdarroch could you add this to #1668 instead?

will be fixed in https://github.com/chef/automate/issues/1668


LTO is limiting gcc/clang to -O2  on Windows, despite this being unnecessary

Nuitka 0.6.19rc5 (from source)
CPython 3.7.12 on Windows 7 SP1
GCC+MinGW64: 11.2.0 with MinGW64 master from mid december 2021
648387917b2bfc82c8614552e655cbf48dc40335 restored -O3 flag for --lto=no but not for --lto=yes case which still uses -O2.

There was nothing to restore though, it was always -O2, but that is just wording. I agree it can be -O3 on Windows, because the optimization of static libpython is not happening.
So this will work I think:
        env.Append(LINKFLAGS=["-O3" if nuitka_python or win_target or not static_libpython else "-O2"])

In this scenario, Fedora and other weak Pythons are benefiting as well, Anaconda has static link library on Windows potentially, but it's pseudo, to the platform test is necessary for it.

Will be part of the next release, no need to break existing configurations, -O3 is still a significant change, which reminds me, I should factor in low memory mode.

I wonder if it's possible to mix -O3 for CCFLAGS and -O2 for link flags, and achieve something there as well.

This now part of the current pre-release and will be part of 0.6.19 which should arrive shortly.

Part of the 0.6.19 release I just made.


CupertinoContextMenu is not interactible until the long press gesture is released

Use case
CupertinoContextMenu has a major native distinguish behavior in the dragging process.
Current behavior:
1 - When user long press on item the context appear but there is no interacting.
2 - The User need to release his finger and repress the preview area to interact with the menu.
https://github.com/user-attachments/assets/1a3de1a5-1540-47e9-8617-f3c224995625
The expected behavior:
1 - When user long press on item the context menu should appear
2 - While user finger keep finger down and swap the menu should keep interacting scrolling.
https://github.com/user-attachments/assets/0413149c-771b-4c9b-b4a8-16f7b4a0ca51
In both videos i does not released my finger after popup appear, you can reproduce this misbehave by keep your finger pressed down until pop-up show and try to move your finger around.
Also the drag cancel time is not same as the native, but this is not our topic today , as i see in the source code, there is a constants holding timing for drag, speed .. etc , so it well be easy to make this calibration latter.
Proposal
I guess we need somehow a way to track the global gesture position , and pass it from the child to the parent and keep synchronizing tracking while preview showing.
I really thinking about solve this issue, but it need more digging to collect more information's about the reflection of IOS accessibility preferences and there impact on the context menu.
If any one have any suggestions that could help, please share them  to discuss.

Hi @abdalmonem,  Thanks for filing the issue, I am able to reproduce the issue on the latest stable and the master channel.     CupertinoContextMenu is not interactible until the long press gesture is released.

Flutter
IOS Native

flutter doctor -v
[✓] Flutter (Channel stable, 3.27.0, on macOS 15.1.1 24B2091 darwin-arm64, locale en-US)
    • Flutter version 3.27.0 on channel stable at /Users/mahesh/Development/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 8495dee1fd (7 days ago), 2024-12-10 14:23:39 -0800
    • Engine revision 83bacfc525
    • Dart version 3.6.0
    • DevTools version 2.40.2

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-35, build-tools 34.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 16.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 16A242d
    • CocoaPods version 1.16.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2024.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

[✓] VS Code (version 1.94.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.100.0

[✓] Connected device (3 available)
    • macOS (desktop)                 • macos                 • darwin-arm64   • macOS 15.1.1 24B2091
      darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin         • macOS 15.1.1 24B2091
      darwin-arm64
    • Chrome (web)                    • chrome                • web-javascript • Google Chrome
      128.0.6613.85

[✓] Network resources
    • All expected network resources are available.

• No issues found!

[!] Flutter (Channel master, 3.28.0-1.0.pre.123, on macOS 15.1.1 24B2091 darwin-arm64, locale en-US)
    • Flutter version 3.28.0-1.0.pre.123 on channel master at /Users/mahesh/Development/flutter_master
    • Framework revision a547c7f050 (4 days ago), 2024-12-13 22:11:39 -0500
    • Engine revision 4e4a430bcd
    • Dart version 3.7.0 (build 3.7.0-243.0.dev)
    • DevTools version 2.41.0
    • If those were intentional, you can disregard the above warnings; however it is recommended to use
      "git" directly to perform update checks and upgrades.

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /Users/mahesh/Library/Android/sdk
    • Platform android-35, build-tools 34.0.0
    • ANDROID_HOME = /Users/mahesh/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jbr/Contents/Home/bin/java
      This is the JDK bundled with the latest Android Studio installation on this machine.
      To manually set the JDK path, use: `flutter config --jdk-dir="path/to/jdk"`.
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 16.0)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 16A242d
    • CocoaPods version 1.16.2

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2024.1)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.11+0-17.0.11b1207.24-11852314)

[✓] IntelliJ IDEA Community Edition (version 2021.2.1)
    • IntelliJ at /Applications/IntelliJ IDEA CE.app
    • Flutter plugin version 61.2.4
    • Dart plugin version 212.5080.8

[✓] VS Code (version 1.94.0)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.100.0

[✓] Connected device (3 available)
    • macOS (desktop)                 • macos                 • darwin-arm64   • macOS 15.1.1 24B2091
      darwin-arm64
    • Mac Designed for iPad (desktop) • mac-designed-for-ipad • darwin         • macOS 15.1.1 24B2091
      darwin-arm64
    • Chrome (web)                    • chrome                • web-javascript • Google Chrome
      128.0.6613.85

[✓] Network resources
    • All expected network resources are available.

! Doctor found issues in 1 category.

@maheshj01 I already stared to investigation on this [issue/feature] , can you assign it to me ?

@abdalmonem I have assigned this issue to you.

Blocked by [https://github.com/flutter/flutter/issues/126151], without fix this we cannot doing much , unless we made a big changes to use Overlay instead of push another route into navigation stack, or more painful way by overriding both Navigator, and NavigatorState.


KAFKA-18050: Upgrade the checkstyle version to 10.20.2

Jira: https://issues.apache.org/jira/browse/KAFKA-18050
As we don't support the Java version8, we can avoid the CVE-2023-2976 and CVE-2020-8908m thus we should upgrade the checkstyle version, and some file are missed in old version checkstyle, thus we should upgrade the checkstyle version.
Committer Checklist (excluded from commit message)

[ ] Verify design and implementation
[ ] Verify test coverage and CI build status
[ ] Verify documentation (including upgrade notes)

Related PR: #10967
@m1a2st I will try to test my PR on top of your changes.

@m1a2st you may also want to use  latest Checkstyle patch version (10.20.2)

@dejan2609 I found there is an error when I use the version of 10.20.2, PTAL, Thanks for your helping https://github.com/apache/kafka/actions/runs/12122917186/job/33797238123?pr=17999

No problem @m1a2st  upgrade to 10.20.1 version is still awesome.
You may want to squash commits into one  so maintainer (@chia7712) could merge your change into trunk.

It will be awesome to create separate PR after merge of this PR to update to latest checkstyle and share report content to let us review how it was possible to generate bad xml

It will be awesome to create separate PR after merge of this PR to update to latest checkstyle and share report content to let us review how it was possible to generate bad xml

I agree with that, @romani.
Anyhow: I tested (on my computer) this branch with Checkstyle 10.20.2 and it compiles just fine.
Gradle command used: ./gradlew checkstyleMain checkstyleTest -x test --info

Let's merge this PR first.

I tested (on my computer) this branch with Checkstyle 10.20.2 and it compiles just fine.

I run the 10.20.2 on #18010, and it works well.

Let's merge this PR first.

I have updated this PR to use version 10.20.2 again. Let's see what happens this time.

The failed test is traced by https://issues.apache.org/jira/browse/KAFKA-18036


Rewrite global introduction (remove duplication)

collapsed issue:
https://github.com/spoofax-shell/doc/pull/29/files?diff=unified#diff-46616cb4ff01a4543eaf70e1a9eb457fR14
https://github.com/spoofax-shell/doc/pull/29/files?diff=unified#diff-46616cb4ff01a4543eaf70e1a9eb457fR28

See https://github.com/spoofax-shell/doc/pull/29#discussion_r61867273.


Fix/232 meetings

Now, you are able to edit a meeting event in the screen "Eventos", to do it, you need to log in as an admin.

It is working as expected good job with that but instead of having to refresh the page to see that the meetings has been deleted or updated it should be done automatically. I believe this has already be done in other parts of the web page and I think it was done with events

The feature has been implemented following the feature of edit and delete events. If we implement the option refresh the page automatically, the toast messages are not going to be shown because the refresh not take to count the toast.

It is working as expected good job with that but instead of having to refresh the page to see that the meetings has been deleted or updated it should be done automatically. I believe this has already be done in other parts of the web page and I think it was done with events

The feature has been implemented following the feature of edit and delete events. If we implement the option refresh the page automatically, the toast messages are not going to be shown because the refresh not take to count the toast.

Ah I did not know, in that case we just leave it as it is done at the moment


No "Tank Lid" sensor changes

Describe the bug
Tank Lid doesn't rise any status other than "off" on european Volvo XC40 Recharge (full EV).
To Reproduce:
Steps to reproduce the behavior:

Open tank lid of the vehicule.
Check status of sensor "XC40 (2024) - YV1XZEPT8R******* Tank Lid" and see it doesn't change.

Expected behavior:
When I open tank lid, I expect to see status of sensor switch to "on".
Version info:

Volvo2Mqtt 1.9.3
Core 2024.6.2
Supervisor 2024.06.0
Operating System 12.3
User interface 20240610.0
HA Docker version

Logs:
Enable the debug option and upload your logfile here.
If you are using the HA Addon the log location is \\<Your HA Host IP>\addons\volvo2mqtt\log\volvo2mqtt.log

Please send debug logs from opened and closed tank lid

Hi,
On my XC40 PHEV 2023 I see  for tankLid, when quering: https://api.volvocars.com/connected-vehicle/v2/vehicles/"Volvo_VIN"/doors for value "UNSPECIFIED".
So obviously it is not implemented for all cars.
Regards

Hi,
Sorry for ma late answer. I would love to send you debug logs but cannot find the way to transfer it from HA machine... In the meantime, I enabled API debug log and see this :

Hi,
On my XC40 PHEV 2023 I see for tankLid, when quering: https://api.volvocars.com/connected-vehicle/v2/vehicles/"Volvo_VIN"/doors for value "UNSPECIFIED". So obviously it is not implemented for all cars.
Regards

Tried to execute that but didn't found how to pass the full authentication. It says :
{
  "error": {
    "message": "Unauthorized",
    "description": "Full authentication is required to access this resource"
  }
}

I have a new EX30, and my "tank lid" is always indicated as Open.
I assume it's a buggy API, as there are so many bugs in the onboard system in the EX30.

I was wondering if it could be a broken sensor on the tank lid of the car. But can’t find enough information on web about that…

I think the whole Volvo API is very much "work-in-progress" so I guess we'll see some fixes in tve future.

I have an XC90 T8, ie a PHEV, so there are two 'tank lids', one for petrol, one for charging.
This API value works for me, but only for the petrol tank lid (which is a shame because the one I occasionally leave open is the charging one).
I would expect therefore that this sensor is specifically for the petrol tank lid in PHEV and petrol-only vehicles - full EVs won't get any info regarding their 'charging lid'.


Update visualization.md

First PR woot woot. I think I'm doing this right. Adding my notes about where I think there's a disconnect in the docs in Phase 1

Awesome, thanks. In addition to the call out of what needs to be fixed, you linked people to a workaround. Perfect. :-)


Support for remappings

I am using solc's remapping feature and brownie for my project. Doing either of these cause the vscode-solidity's plugin to fail loading my imports.
It would be really helpful if there were some sort way to include these remappings in the project's settings.
https://solidity.readthedocs.io/en/develop/layout-of-source-files.html?#use-in-actual-compilers

For example, if you clone github.com/ethereum/dapp-bin/ locally to /usr/local/dapp-bin, you can use the following in your source file:
import "github.com/ethereum/dapp-bin/library/iterable_mapping.sol" as it_mapping;
Then run the compiler:
solc github.com/ethereum/dapp-bin/=/usr/local/dapp-bin/ source.sol

There's another plugin that has the feature, but it hasn't been updated in 2 years.

Still on the todo list, just reporting, github support is going to be a pain as we want to be able to get those files for autocomplete.

Still on the todo list, just reporting, github support is going to be a pain as we want to be able to get those files for autocomplete.

You don't really have to add any special support for github or even URLs in general to make URL in imports work. Remapping is a general mechanism that just swaps one prefix with another. These prefixes can be URLs, paths, @package_names or anything else. Does not matter because the only thing the compiler cares about is for the part after = to make sense as a part of the import after the replacement. The only thing you'd need for basic remapping support would be to make the extension aware of how remappings affect paths used in imports.
In the simplest scenario you can leave it up to the user to get files from github and to remap the URL to the local path where the files are available. Brownie solves that by providing a package manager that handles cloning the repo into the right location.
There's also another way to support imports from github - a custom import callback. Remix IDE uses this. It's because it's running in a browser where it's trivial for it to fetch files from arbitrary URLs. Remappings were actually added as an alternative way to handle such imports in the native compiler binary. Since vscode-solidity, unlike Brownie, is using the emscripten binary (via solc-js) just like Remix, both approaches are viable.

@cameel yeah my issue was with go to definition and auto complete, etc, For this the file from url will need to be downloaded and put in a temporary directory so it can be parsed and navigated to if needed, also if there is an issue with the file itself use it as part of the background compilation, so it can be navigated to as well. I guess here is where the import callback, could be helpful. Finally on the "final" compilation, just let solc do its thing.

@juanfranblanco What you describe would be one way to support URLs. Remapping would be another.
You could let users just define a list of remappings in project settings, which would allow them to get URLs to work "manually" (i.e. by explicitly remappng a given URL with a given local path).
A callback, on the other hand, would be a way to make URLs work automatically, the way you described above, without any configuration on user's part.
Since this issue is about remappings and not about supporting URLs, I'm just suggesting that you could implement one of these without implementing the other immediately. They're separate things and one does not depend on the other.

any thoughts on moving this higher up the priority list? Without remappings, the extension doesn't play nicely with daptools directory layouts

@merc-0 Just wanted to add that you can work around the lack of remappings by creating symbolic links. To the compiler they basically look like a different name for the same file. That's not a reason not to add support for remappings but at least that's something you can use right away.

@merc-0 Just wanted to add that you can work around the lack of remappings by creating symbolic links. To the compiler they basically look like a different name for the same file. That's not a reason not to add support for remappings but at least that's something you can use right away.

How can I do that if I have a remapping like:
import<EMAIL_ADDRESS>?

@cmeyke I have not had much time to look into this, you can achieve that already in the settings by providing the path for your "library" / modules. This is the part that will need updated to allow for more "mappings" to be resolved, and linked to the compiler.

@cmeyke Depends on where your copy of OZ is installed. For example if it's in lib/openzeppelin-contracts/, you'd normally have a remapping like @openzeppelin/=lib/openzeppelin-contracts/. You can get the same effect by creating an equivalent symlink:
ln -s lib/openzeppelin-contracts @openzeppelin

Just remember to put the symlink in the root dir of your project (the one that contains src/ and lib/) and not e.g. in src/.
With this I'm assuming that vscode-solidity follows symlinks without resolving them. I haven't checked but that's how the compiler behaves and how frameworks do it. For example if you have the symlink I have shown above, the it should see ERC721URIStorage.sol as @openzeppelin/contracts/token/ERC721/extensions/ERC721URIStorage.sol and not lib/openzeppelin-contracts/contracts/token/ERC721/extensions/ERC721URIStorage.sol.
@juanfranblanco Setting the dependency dir would be enough for OZ and other libraries which are typically installed with npm but there also libraries using dapp-tools' own convention that do need remappings. For example dapp-test contracts are typically installed in lib/dapp-test/src/ but imported with import "ds-test/test.sol". This does require a remapping (or the symlink trick I suggested above).
But this setting actually does make the symlink trick somewhat cleaner. If you set the dependency dir to lib/, you can create symlinks there and this way keep them out of the project root.
BTW, if you need to test this with an actual project, dapptools-template might come in handy. It has minimal amount of code and the typical dapp-tools structure.

@cameel Yes, thanks, that makes sense, actually the dapptools support was the first original supported by the extension, (dapple) hence the two different folders in the settings. So allowing multiple settings (ie path for node_modules), path for (lib + contracts) might be enough.
Don't you think that it will be a great time to standardise where the project folders, like for example the sim

"You could let users just define a list of remappings in project settings, which would allow them to get URLs to work "manually" (i.e. by explicitly remapping a given URL with a given local path)."
I guess combining that with support to "remappings.txt" to start with will be the simplest solution.

Don't you think that it will be a great time to standardise where the project folders, like for example the "remappings.txt" in the "dapptools-template"

I suspect that other tools might prefer to have it or already have it in their own config. For example Brownie has them in brownie-config.yaml. Truffle in truffle-config.js (though they're still buggy: https://github.com/trufflesuite/truffle/issues/2768). And Hardhat does not support remappings and, last time I heard from them, had no plans to add them in the near future (https://github.com/nomiclabs/hardhat/issues/1877). So this again boils down to standardizing the project format :) But I guess supporting remappings.txt directly in vscode-solidity would not hurt. Might actually encourage more people to use it.

The only thing you'd need for basic remapping support would be to make the extension aware of how remappings affect paths used in imports.

By the way, this part is now fully documented: Import remapping. The compiler is actually supposed to be able to do that translation for you automatically but unfortunately the resolved path is missing from the output (https://github.com/ethereum/solidity/issues/11756) - that will probably come in one of the upcoming releases.

This sounds amazing ^

@cameel @PatrickAlphaC @merc-0 @WyseNynja just checked in the initial support. Not perfect yet as it is driven by the global / workspace settings. I think going deeper will takes us back to the project file / module or the old dapp project file :). Which can contain each remapping, module / context name etc.
Notes:

Remapping support included in the workspace / global settings, the remapping base path is relative to the workspace root folder.
Issues at the moment, multiple folders in a workspace will use the same remapping (as it is a workspace setting and for that folder)
No support for "context", so mainly this uses the workspace folder for all dependencies. Solution for this and above will be find the current "remappings.txt" (or project file) in each folder and use that as the Package remapping configuration. Context name (package name, could be driven from that).

Thanks so much @juanfranblanco! You're doing amazing work. I've tried a few times to get it to work... perhaps I'm doing something wrong... I'll try again later.


Keys.DESPAWN_DELAY does not work (as expected?)

I am currently running

SpongeForge version: 1.12.2-2611-7.1.0-BETA-3005
SpongeVanilla version: 1.12.2-7.1.0-BETA-38
Java version: 1.8.0_161
Operating System: Windows 10

Plugins/Mods: Minecraft, Mod Coder Pack, SpongeAPI, SpongeVanilla, Core, CoreLib, GameLib, Jump'n'Clash, LuckPerms, SpongyCord, ViaBackwards, ViaVersion

Issue Description
Setting the Keys.DESPAWN_DELAY for an Item entity either doesn't work at all, or does not do what the name suggests.
So for example I ran the following
item.offer(Keys.DESPAWN_DELAY, 5 * 20);

thinking this would cause the item to despawn after 5 seconds, but it does not. I played with the value (decreased it to 5) and tested a negative value, but nothing observable did change.
The transaction always succeeds:
DataTransactionResult{resultType=SUCCESS, rejectedData=[], replacedData=[ImmutableSpongeBoundedValue{key=SpongeKey{name=Despawn Delay, id=sponge:despawn_delay, valueToken=org.spongepowered.api.data.value.mutable.MutableBoundedValue<java.lang.Integer>, elementToken=java.lang.Integer, query=DespawnDelay}, defaultValue=0, actualValue=40}], successfulData=[ImmutableSpongeBoundedValue{key=SpongeKey{name=Despawn Delay, id=sponge:despawn_delay, valueToken=org.spongepowered.api.data.value.mutable.MutableBoundedValue<java.lang.Integer>, elementToken=java.lang.Integer, query=DespawnDelay}, defaultValue=0, actualValue=100}]}

When I tested this on SpongeVanilla-1.12.2-7.1.0-BETA-38 I noticed that doing entity.offer(Keys.DESPAWN_DELAY, 5); appeared to change the pickup delay as when I dropped the item I would pick it back up before it hit the ground.
entity.offer(Keys.DESPAWN_DELAY, 100000); also prevented the item from being picked up.
@Listener
public void onDropItem(DropItemEvent.Dispense event, @Root Player player) {
    if (event.isCancelled() || event.getEntities().isEmpty()) {
        return;
    }

    for (Entity entity : event.getEntities()) {
        if (entity instanceof Item) {
            entity.offer(Keys.DESPAWN_DELAY, 5);
        }
    }
}

@ryantheleach, I think LXGaming added already all details necessary.
But yes, I’m definitely offering that key to an EntityItem. I personally didn’t notice the mix up, because I also set the pick up delay directly after.

Apologies, I misread ' change the pickup delay' as ' change the despawn delay' in LXGaming's post.

Fixed by a624e5c92e6a62cdb15df3d81624bab4863d22ed


Go extractor: Make Bazel file paths reflect the symlink forest. [phab:D1193]

Created by fromberger at 2016-12-20 19:52:57:

salguarnieri wrote at 2016-12-20 20:42:39:
Is it possible to add a test for this?

salguarnieri accepted this revision at 2016-12-20 20:42:39

salguarnieri wrote at 2016-12-20 20:47:03:
SGTM

fromberger closed via commit d367617649c98db300f85a48a345e6da738a47ab at 2016-12-20 21:07:55


Re-export external APIs

Closes #361.
Additionally exports the langium/lib/test package in such a way that it can be consumed using langium/test.

@spoenemann Theia does it as well: https://github.com/eclipse-theia/theia/tree/master/packages/core/shared

Tested it on Gitpod with the dev setup scenario described in https://github.com/langium/langium/blob/5fc873db5aa5ae7897f6f3aa73ffa697ee14771b/CONTRIBUTING.md#L51-L60
Works well 🙂

Hi @msujew @spoenemann @sailingKieler for apps that have modules that depend on each other I have used peerDependencies in the past. It is a way to ensure that all app modules use the same version of a third party lib like React. However, peerDependencies are a smell because the actual dependency present at runtime may have breaking changes (e.g. semantically, not necessarily on the source/API level).
I do not have much experience in bundling and exposing external dependencies as part of the own library. Therefore I only have one question:
Is there the risk that the user of langium uses another version of vscode than that we re-export?
I don't see problems regarding source backward compatibility, because we also re-export the types. (Binary backw'compat should be the same as source backw'compat in JS because it is an interpreted language).
However, what about semantic backw'compat in the way that the re-exported vs-code dependency behaves different that the vs-code runtime of the user who uses langium?
This is just a theoretical question. I think it shouldn't be a problem in practice if Microsoft does not break anything.
This PR looks good!

I'm skeptical about this change. Can't we solve the original issue simply by adding explicit dependencies to the generator-langium template?

@spoenemann @danieldietrich I'm inclined to agree, we shouldn't export our dependencies.
I changed the PR to include the dependencies in the generator-langium project.

@spoenemann I believe the TokenBuilder exposes some API from Chevrotain, so I think it's a good idea to have that in the generator-langium build.

Hi @msujew, I just recognized that test.js and test.d.ts are checked in at top level of the langium package and also bundled. Is that intended?

@danieldietrich Yep, definitely intended. It allows us to reference the langium/test part of our framework when importing code instead of always using langium/lib/test.

Ok, it looked a bit unusual but it makes sense. 👍