re-title What Is article in concepts

Avoid duplication of titles with the What Is article in 5 things you need to know. Provide a more precise search intent.

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
AcrolinxScore
LowestCategoryScore
Issues
Scorecard
Processed

articles/concepts/index.md
75
52
37
link
:white_check_mark:

More info about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues

Docs Build status updates of commit cbc05fc:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/concepts/index.md
:white_check_mark:Succeeded
View (qsharp-preview)

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

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
AcrolinxScore
LowestCategoryScore
Issues
Scorecard
Processed

articles/concepts/index.md
80
52
32
link
:white_check_mark:

More info about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues

Docs Build status updates of commit 49cdb7f:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/concepts/index.md
:white_check_mark:Succeeded
View (qsharp-preview)

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

Acrolinx Scorecards
A minimum Acrolinx score of 80 is required.
Click the scorecard links for each article to review the Acrolinx feedback on grammar, spelling, punctuation, writing style, and terminology:

Article
AcrolinxScore
LowestCategoryScore
Issues
Scorecard
Processed

articles/concepts/index.md
80
52
32
link
:white_check_mark:

articles/concepts/toc.yml
87
24
1
link
:white_check_mark:

More info about Acrolinx

Install Acrolinx locally for VSCode
False positives or issues

Docs Build status updates of commit 39cb6bd:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

articles/concepts/index.md
:white_check_mark:Succeeded
View (qsharp-preview)

articles/concepts/toc.yml
:white_check_mark:Succeeded

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

#sign-off


Preserve JSDoc

Is there an option or a way to preserve JSDoc comments in the generated DTS file, @ryoppippi ?

@RobinTail
For now, there is not way to do it.
At least, oxc does not support it maybe

I'll try using swc, which may support it, but idk

Probably related to this: https://github.com/oxc-project/oxc/issues/3906

Yeah he is creating a kind of same thing

@RobinTail
FYI, I have started to use tsdown(rolldown based), and they are great(maybe better than Bun.build).
(However, rolldown based on oxc, so JSDocs are gone too...)

Ok, I'll close this because this is oxc's isssue!


created fluentd is unable to write to S3 output backend managed by minio

Describe the bug:
I have a minio in the kubernetes namespace minio. Created fluentbit pod fails with the error msg below:
➜ klo default-logging-simple-fluentd-0 -c fluentd

2024-10-09 21:52:27 +0000 [error]: #0 unexpected error error_class=Aws::S3::Errors::BadRequest error="Aws::S3::Errors::BadRequest"
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/aws-sdk-s3-1.149.1/lib/aws-sdk-s3/bucket.rb:82:in `rescue in exists?'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/aws-sdk-s3-1.149.1/lib/aws-sdk-s3/bucket.rb:77:in `exists?'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/fluent-plugin-s3-1.7.2/lib/fluent/plugin/out_s3.rb:417:in `ensure_bucket'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/fluent-plugin-s3-1.7.2/lib/fluent/plugin/out_s3.rb:268:in `start'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/fluentd-1.16.5/lib/fluent/root_agent.rb:203:in `block in start'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/fluentd-1.16.5/lib/fluent/root_agent.rb:182:in `block (2 levels) in lifecycle'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/fluentd-1.16.5/lib/fluent/agent.rb:121:in `block (2 levels) in lifecycle'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/fluentd-1.16.5/lib/fluent/agent.rb:120:in `each'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/fluentd-1.16.5/lib/fluent/agent.rb:120:in `block in lifecycle'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/fluentd-1.16.5/lib/fluent/agent.rb:113:in `each'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/fluentd-1.16.5/lib/fluent/agent.rb:113:in `lifecycle'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/fluentd-1.16.5/lib/fluent/root_agent.rb:181:in `block in lifecycle'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/fluentd-1.16.5/lib/fluent/root_agent.rb:178:in `each'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/fluentd-1.16.5/lib/fluent/root_agent.rb:178:in `lifecycle'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/fluentd-1.16.5/lib/fluent/root_agent.rb:202:in `start'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/fluentd-1.16.5/lib/fluent/engine.rb:248:in `start'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/fluentd-1.16.5/lib/fluent/engine.rb:147:in `run'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/fluentd-1.16.5/lib/fluent/supervisor.rb:617:in `block in run_worker'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/fluentd-1.16.5/lib/fluent/supervisor.rb:962:in `main_process'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/fluentd-1.16.5/lib/fluent/supervisor.rb:608:in `run_worker'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/fluentd-1.16.5/lib/fluent/command/fluentd.rb:372:in `<top (required)>'
  2024-10-09 21:52:27 +0000 [error]: #0 <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:86:in `require'
  2024-10-09 21:52:27 +0000 [error]: #0 <internal:/usr/local/lib/ruby/3.2.0/rubygems/core_ext/kernel_require.rb>:86:in `require'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/gems/fluentd-1.16.5/bin/fluentd:15:in `<top (required)>'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/bin/fluentd:25:in `load'
  2024-10-09 21:52:27 +0000 [error]: #0 /usr/local/bundle/bin/fluentd:25:in `<main>'
2024-10-09 21:52:27 +0000 [error]: Worker 0 exited unexpectedly with status 1

Expected behaviour:
Fluentbit to write data into minio
Steps to reproduce the bug:
➜ helm upgrade --install --wait log-generator oci://ghcr.io/kube-logging/helm-charts/log-generator
➜ helm install minio --create-namespace --namespace minio --set resources.requests.memory=100Mi --set replicas=1 --set persistence.enabled=false --set mode=standalone --set rootUser=rootuser,rootPassword=rootpass123 minio/minio

apiVersion: logging.banzaicloud.io/v1beta1
kind: Logging
metadata:
  name: default-logging-simple
spec:
  fluentd: {}
  fluentbit: {}
  controlNamespace: logging-operator
---
apiVersion: logging.banzaicloud.io/v1beta1
kind: Output
metadata:
 name: s3-output
spec:
 s3:
   aws_key_id:
     value: console
   aws_sec_key:
     value: console123
   s3_bucket: tekton-logs
   s3_region: tekton
   s3_endpoint: http://minio.minio.svc.cluster.local:9000
   path: logs/${tag}/%Y/%m/%d/
   buffer:
     timekey: 1m
     timekey_wait: 1m
     timekey_use_utc: true
---
apiVersion: logging.banzaicloud.io/v1beta1
kind: Flow
metadata:
  name: s3-flow
spec:
  filters:
    - tag_normaliser: {}
  match:
    - select:
        labels:
          app.kubernetes.io/name: log-generator
  localOutputRefs:
    - s3-output

this has provisioned the following fluentbit config in the secret:
kgsec default-logging-simple-fluentd-configcheck-app-9f08d787 -o go-template='{{range $k,$v := .data}}{{printf "%s: " $k}}{{if not $v}}{{$v}}{{else}}{{$v | base64decode}}{{end}}{{"\n"}}{{end}}'

generated.conf: <source>
  @type forward
  @id main_forward
  bind <IP_ADDRESS>
  port 24240
</source>
<match **>
  @type label_router
  @id main
  metrics false
  <route>
    @label @4cf1da639c4ecf36a3b5392a80286a00
    metrics_labels {"id":"flow:logging-operator:s3-flow"}
    <match>
      labels app.kubernetes.io/name:log-generator
      namespaces logging-operator
      negate false
    </match>
  </route>
</match>
<label @4cf1da639c4ecf36a3b5392a80286a00>
  <match kubernetes.**>
    @type tag_normaliser
    @id flow:logging-operator:s3-flow:0
    format ${namespace_name}.${pod_name}.${container_name}
  </match>
  <match **>
    @type s3
    @id flow:logging-operator:s3-flow:output:logging-operator:s3-output
    aws_key_id console
    aws_sec_key console123
    path logs/${tag}/%Y/%m/%d/
    s3_bucket tekton-logs
    s3_endpoint http://minio.minio.svc.cluster.local:9000
    s3_object_key_format %{path}%{time_slice}_%{uuid_hash}_%{index}.%{file_extension}
    s3_region tekton
    <buffer tag,time>
      @type file
      path /buffers/flow:logging-operator:s3-flow:output:logging-operator:s3-output.*.buffer
      retry_forever true
      timekey 1m
      timekey_use_utc true
      timekey_wait 1m
    </buffer>
  </match>
</label>
<label @ERROR>
  <match **>
    @type null
    @id main-fluentd-error
  </match>
</label>

Additional context:
At the same time the following python3 boto3 code worked without any issues:
import boto3
from botocore.client import Config

# S3/MinIO credentials and configuration
aws_key_id = "console"
aws_sec_key = "console123"
s3_bucket = "tekton-logs"
s3_region = "tekton"
s3_endpoint = "http://minio.minio.svc.cluster.local:9000"
file_to_upload = "sample.txt"  # The local file you want to upload
s3_key = "sample.txt"  # The name of the file in the S3 bucket

# Create the S3 client
s3_client = boto3.client(
    's3',
    aws_access_key_id=aws_key_id,
    aws_secret_access_key=aws_sec_key,
    endpoint_url=s3_endpoint,  # Specify MinIO custom endpoint
    region_name=s3_region,
    config=Config(signature_version='s3v4')  # Ensure correct signature version
)

# Upload the file
try:
    s3_client.upload_file(file_to_upload, s3_bucket, s3_key)
    print(f"File '{file_to_upload}' uploaded to '{s3_bucket}/{s3_key}'.")
except Exception as e:
    print(f"Error uploading file: {e}")

File 'sample.txt' uploaded to 'tekton-logs/sample.txt'.

Environment details:

Kubernetes version (e.g. v1.15.2): 1.30
Cloud-provider/provisioner (e.g. AKS, GKE, EKS, PKE etc): AWS
logging-operator version (e.g. 2.1.1): latest 4.10.0
Install method (e.g. helm or static manifests): HELM
Logs from the misbehaving component (and any other relevant logs): see above
Resource definition (possibly in YAML format) that caused the issue, without sensitive data: see above

/kind bug

Hey @dmitry-mightydevops,
First of all, thanks for using the Logging Operator! I've started investigating this by trying out a deploy flow described in our documentation page, which utilizes MinIO. However, I found that it was faulty, so I updated the docs in the following PR. Be sure to check it out; it is now a fully functional end-to-end guide. (Please ignore parts of the Prometheus deployment if they are not relevant for you.)
I noticed that you use the MinIO Helm chart, which is a community maintained chart. I did not have success with it, most likely due to the fact that this chart uses older versions for both MinIO and the console. I did not investigate it further, but I'm sure that based on the documentation, you will be able to figure out how to deploy it with the chart.


HHH-9582: MavenEnhancePlugin "Unable to enhance persistent attribute".

Create a loadingClassLoader (used to search for classes referenced from
the processed classes) that includes the path to the classes to enhance,
and not only the plugin's class path.

I'm going to have close this PR because the maven plugin code has since diverged.
Anyway, I fixed the the issue based on the reproducer you provided. @johnny-mac thanks a lot for that, it was really helpful.

Is the fix for this issue available in the 4.x baseline or only 5 CR2?
(Can we use the 5 CR2 plugin for the 4.x baseline?)

@joelicious, these are two very different questions. To answer the former, no, the fixes on the plugins are only on 5 and not back-ported to 4.x. As for using the enhanced entities on 4.x, I can't remember of any SPI change, so in theory it could work (tbh, I haven't tried it). On a more practical side, most features are only implemented on 5 and this is where you'll see most benefit, so I would strongly recommend upgrading. Also, there is little to no interest in fixing bugs on 4.x given the reasons above, while for 5 I always try to fix them as soon as possible.

4.x will not even recognize the enhancements from the 5.0 Enhancer.  So to
take advantage of these changes you'd have to use 5.0 for runtime as well.
On Thu, Oct 8, 2015, 10:02 AM Luis Barreiro<EMAIL_ADDRESS>wrote:

@joelicious https://github.com/joelicious, these are two very different
questions. To answer the former, no, the fixes on the plugins are only on 5
and not back-ported to 4.x. As for using the enhanced entities on 4.x, I
can't remember of any SPI change, so in theory it could work (tbh, I
haven't tried it). On a more practical side, most features are only
implemented on 5 and this is where you'll see most benefit, so I would
strongly recommend upgrading. Also, there is little to no interest in
fixing bugs on 4.x given the reasons above, while for 5 I always try to fix
them as soon as possible.
—
Reply to this email directly or view it on GitHub
https://github.com/hibernate/hibernate-orm/pull/877#issuecomment-146572385
.

Thank you for your response.  If Hibernate 4.x is a must in the environment I am in, what would you recommend?  If I use the ant task - is this issue present there too?

The 4.0 and 5.0 enhancement are completely different things; the 5.0
enhancement was completely re-written from scratch.  So just because a bug
or fix is needed for the 5.0 one, does not mean the same bug/fix is needed
for 4.0.  TIAS.
On Thu, Oct 8, 2015 at 11:54 AM Joseph Butler<EMAIL_ADDRESS>wrote:

Thank you for your response. If Hibernate 4.x is a must in the environment
I am in, what would you recommend? If I use the ant task - is this issue
present there too?
—
Reply to this email directly or view it on GitHub
https://github.com/hibernate/hibernate-orm/pull/877#issuecomment-146620410
.


supporting async read() in read_part_data

we discussed in issues/7. would love to support this use case. PTAL.

Thank you for your update.
I cannot test it right now, but I think this function should work.


Hello,I recently read another of your papers and have a little doubt about the dataset SUN-SEG-I mentioned in it.

Hello, in this paper ‘Rethinking Polyp Segmentation From An Out-of-distribution Perspective’, it is mentioned that the name of the dataset used is SUN-SEG-I, and the article cited is also this one. Is it the SUN-SEG dataset proposed in this article, or is there any difference? Hope to get your reply!

Yes, u r right. We use the same data.

Hello, would you please provide the image mask results saved for the test, I would like to use other evaluation metrics to run the test quantitative results

Sure thing, I will prepare these results in recent weeks, and let you know once uploaded. Cause I still have some ddls to handle first.
Best.

On Nov 7, 2024, at 11:02 PM, yike5022 @.***> wrote:
Hello, would you please provide the image mask results saved for the test, I would like to use other evaluation metrics to run the test quantitative results
—
Reply to this email directly, view it on GitHub https://github.com/GewelsJI/VPS/issues/44#issuecomment-2462061589, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJEUADI54EOJEBWYBJBMC43Z7NJGLAVCNFSM6AAAAABRK272S6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINRSGA3DCNJYHE.
You are receiving this because you commented.


Analytics changes for survey responses over time

Description of changes:

Backend changes to add logic to pull user response data by week or by month.
Front end changes to remove hard coded data and extract data from analytics API.

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of the met-public license (Apache 2.0).

Codecov Report

Merging #1534 (87e5c1e) into main (a624602) will increase coverage by 0.00%.
The diff coverage is 100.00%.

@@           Coverage Diff           @@
##             main    #1534   +/-   ##
=======================================
  Coverage   71.91%   71.91%
=======================================
  Files         336      336
  Lines        9948     9949    +1
  Branches      725      726    +1
=======================================
+ Hits         7154     7155    +1
  Misses       2672     2672
  Partials      122      122

Flag
Coverage Δ

metweb
65.23% <100.00%> (+<0.01%)
:arrow_up:

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

Impacted Files
Coverage Δ

met-web/src/apiManager/endpoints/index.ts
100.00% <ø> (ø)

met-web/src/config.ts
96.66% <100.00%> (+0.11%)
:arrow_up:


Asymmetric behaviour of Toggle Block Comment

while testing #16558:
Applying "Toggle Block Comment" to multiple lines adds the opening comment on the first line of the selection but adds the closing comment after the last line of the selection:
Applying "Toggle Block Comment" to this selection:

results in this:

@weinand  on second look this appears to be working as designed:
case 1: selection ends on the line of } (i.e. selection does not contain \n):
The */ gets appended to the right of the cursor:

case 2: selection ends one line below } (i.e. selection contains \n):
The */ gets appended to the right of the cursor:


Adding destroy tests

Coverage remained the same at 57.806% when pulling 3807663f74bdf94bae5fe099575c2018b6f2a745 on adding_destroy_tests into 04dd6640d2ad553c57d40abd7d7cde39b544192b on master.


How to navigate to another URL, go back, forward, reload page?

I am using the C++ binding for webview like this:
  webview::webview w(false, nullptr);
  w.set_size(800, 600, WEBVIEW_HINT_NONE);
  w.navigate("https://example.com/");
  w.run();

but run() method is blocking, so how can I invoke e.g. w.navigate("https://foo.com/"); after w.run();?
How to navigate back and forward in the history? And how to reload the currently loaded page?
Thank you!

Is this resolvable with #735?

Maybe, but how to use it? Instead of w.run(); should I write a loop: while (w.step(0) == 0) { /* what should be here? */ }?

Those are good questions. I don't actually know how webview_step is supposed to work. There isn't much documentation for it at the moment and it's currently just a proposed PR to bring back an old feature.
As for methods to go back, forward, etc., I don't believe we're planning on adding those unless a convincing case can be made otherwise.

The most obvious use case is to make a lightweight cross-platform web browser based on native webviews instead of bloated Electron. I've even done a small proof of concept of such browser.


Env variables are NOT statically replaced.

Describe the bug
I want to build same code to different targets: Tauri or Web. In the project, some Rust code need to be compiled to native code or wasm.
In the front-end code, to tell what target we are building, I use the Env variables.
I use something like this:
// Craft.ts
if (import.meta.env.VITE_MY_TARGET == "tauri") {
    var pkgTauri = import("@tauri-apps/api/tauri")
} else if (import.meta.env.VITE_MY_TARGET == "web") {
    var pkgWasm = import("../pkg-wasm")
}

But when I set VITE_MY_TARGET=tauri, it fails to compile with:
RollupError: Could not resolve "../pkg-wasm" from "src/Craft.ts"

The ../pkg-wasm not exist when I'm building for tauri.
Also tried this code:
// Craft.ts
if (import.meta.env.VITE_MY_TARGET == "tauri") {
    var pkgTauri = import("@tauri-apps/api/tauri")
} else if (false) {
    var pkgWasm = import("../pkg-wasm")
}

Which can successfully built.
Since the document says "these env variables are statically replaced". I expect both of the codes should act as same?
Reproduction
https://github.com/Tnze/ffxiv-best-craft
https://github.com/Tnze/vite-issue-4782-minimal-reproducible-example
Steps to reproduce
pnpm run build
System Info
System:
    OS: Windows 10 10.0.22621
    CPU: (32) x64 AMD Ryzen 9 5950X 16-Core Processor
    Memory: 31.74 GB / 63.92 GB
  Binaries:
    Node: 18.17.1 - C:\Program Files\nodejs\node.EXE
    Yarn: 3.2.1 - C:\Program Files\nodejs\yarn.CMD
    npm: 8.3.0 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Edge: Chromium (118.0.2088.61)
    Internet Explorer: 11.0.22621.1
  npmPackages:
    @vitejs/plugin-vue: 4.4.0 => 4.4.0
    vite: 4.4.11 => 4.4.11

Used Package Manager
yarn
Logs
vite v4.4.11 building for production...
transforming...
✓ 689 modules transformed.
Could not resolve "../pkg-wasm" from "src/Craft.ts"
file: /Users/runner/work/ffxiv-best-craft/ffxiv-best-craft/src/Craft.ts
✓ built in 13.83s
error during build:
RollupError: Could not resolve "../pkg-wasm" from "src/Craft.ts"
at error (file:///Users/runner/work/ffxiv-best-craft/ffxiv-best-craft/node_modules/rollup/dist/es/shared/node-entry.js:2287:30)
at ModuleLoader.handleInvalidResolvedId (file:///Users/runner/work/ffxiv-best-craft/ffxiv-best-craft/node_modules/rollup/dist/es/shared/node-entry.js:24860:24)
at ModuleLoader.resolveDynamicImport (file:///Users/runner/work/ffxiv-best-craft/ffxiv-best-craft/node_modules/rollup/dist/es/shared/node-entry.js:24920:58)
at async file:///Users/runner/work/ffxiv-best-craft/ffxiv-best-craft/node_modules/rollup/dist/es/shared/node-entry.js:24807:32
error Command failed with exit code 1.
info Visit https://yarnpkg.com/en/docs/cli/run for documentation about this command.
Error: Process completed with exit code 1.
Validations

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

Duplicate of https://github.com/vitejs/vite/issues/5676


Ensure scrollable is set before onTouchMove

Closes https://github.com/adobe/react-spectrum/issues/3747
On iOS when using usePreventScroll, If onTouchMove is called before scrollable is set by onTouchStart, we get a TypeError.
One example is if the user is touching the screen before usePreventScroll is active then moves.
This fix prevents scroll if scrollable has not been set.
✅ Pull Request Checklist:

[x] Included link to corresponding React Spectrum GitHub Issue.
[x] Added/updated unit tests and storybook for this change (for new code or code which already has tests).
[x] Filled out test instructions.
[x] Updated documentation (if it already exists for this component).
[x] Looked at the Accessibility Practices for this feature - Aria Practices

📝 Test Instructions:

On mobile iOS, if scrolling before usePreventScroll() is called, scrolling will be prevented, and a TypeError won't occur.
🧢 Your Project:

GET_BUILD

GET_BUILD


Appetiser

I started a first attempt at translation.
It simply organises translation in the nine phases proposed by the standard,
without doing any actual translation yet.
We don't want to go very far yet before properly organising the project. For
this first taste, the only request is to reach a point where the simple
program emptymain_zero is correctly decomposed into tokens.

Next subtasks:

parse white space
parse parentheses
parse square brackets
parse semicolon
parse preprocessing number

Tasted.


Remove test tube icons from the first codeblock

As seen here:

Yay thank you for catching this! I added #100 for a follow-up and a bit more context what these are, but completely agree with removing them until they are properly implemented.


Scroll to top/bottom?

A scroll to Top/Bottom gesture or option would be good. You know, like the touch pads scroll area of the laptops. When you slide your finger up on it, goes the page to the top.
Perhaps one could increase speed for every drag, like the Mac OS/iOS scrolling?

Won't fix


changed to depend on the kt-paperclip gem, which is currently maintained

This proposal would be very risky for all the existing users of this gem. A better solution would be to fork this paperclip-meta repo to kt-paperclip-meta and make the change there.

This orphans everyone who isn't upgrading to rails 6+ and ruby 3+.
Your choice.


[SPARK-29394][SQL]Support ISO 8601 format for intervals

What changes were proposed in this pull request?

This pr is to support ISO 8601 format for intervals.

For feature parity with PostgreSQL which supports that:
postgres=# select interval 'P1T1';
    interval
-----------------
 1 year 01:00:00
(1 row)

postgres=# select interval 'P1Y1MT1H1S';
       interval
-----------------------
 1 year 1 mon 01:00:01
(1 row)

postgres=# select interval 'P1-1-0T1:0:1';
       interval
-----------------------
 1 year 1 mon 01:00:01
(1 row)

postgres=# select interval 'P2W';
 interval
----------
 14 days
(1 row)

Does this PR introduce any user-facing change?

No.
How was this patch tested?

Added tests to IntervalUtilsSuite

Can one of the admins verify this patch?

Can one of the admins verify this patch?

ok to test

cc: @MaxGekk @yaooqinn

Test build #123658 has started for PR 28755 at commit 4bfac69.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder-K8s/28281/
Test PASSed.

Test build #123658 has finished for PR 28755 at commit 4bfac69.

This patch passes all tests.
This patch merges cleanly.
This patch adds no public classes.

Merged build finished. Test PASSed.

Test PASSed.
Refer to this link for build results (access rights to CI server needed):
https://amplab.cs.berkeley.edu/jenkins//job/SparkPullRequestBuilder/123658/
Test PASSed.

We reverted ISO interval output before. I don't know whether it's a good idea to support the ISO or ANSI SQL Standard style since 3.1 or not. IMHO, intervals in the form of value-unit pair are more readable, however, none of the other two are that friendly.

We reverted ISO interval output before. I don't know whether it's a good idea to support the ISO or ANSI SQL Standard style since 3.1 or not. IMHO, intervals in the form of value-unit pair are more readable, however, none of the other two are that friendly.

It’s not a bad thing to support iso input format for intervals. Perhaps we should let the user be able to choose?


Unable to get variables into graphql query?

Hello,
I am new to both Rust and grahpql and I'm trying to get a graphql-query with variables working. It appears that the issue is that my variable value is not getting injected into the graphql query. My very basic application looks like this:
use std::print;

use graphql_client::{reqwest::post_graphql_blocking as post_graphql, GraphQLQuery};
use ::reqwest::blocking::Client;
use log::*;

// The paths are relative to the directory where your `Cargo.toml` is located.
// Both json and the GraphQL schema language are supported as sources for the schema
#[derive(GraphQLQuery)]
#[graphql(
    schema_path = "graphql/schema.json",
    query_path = "graphql/price.graphql",
    response_derives = "Debug"
)]
pub struct PriceQuery;

fn main() {
    let house_id = "abced";
    let variables = price_query::Variables {
        house_id: house_id.to_string(),
    };
    let request_body = PriceQuery::build_query(variables);
    print!("{}", request_body.query);

    return;
}

This is my graphql-file:
query PriceQuery($house_id: String!) {
  viewer {
    home(id: $house_id) {
      currentSubscription{
        priceInfo{
          current{
            total
            energy
            tax
            level
            startsAt
          }
          today (time: $time) {
            total
            energy
            tax
            level
            startsAt
          }
          tomorrow {
            total
            energy
            tax
            level
            startsAt
          }
        }
      }
    }
  }
}

I was expecting that the graphql-query printed to the screen would show the actual value of house_id but it just prints everything exactly as in the graphql-file. Are my expectations wrong or am I doing something incorrectly? This should be quite trivial so it feels like I am missing something obvious.

Hi @iceaway! This is expected: the query that gets sent is verbatim the one you write, and the request contains that query, and the values for the variables in a separate object. There is a GraphQL tutorial section on this. You can think of it like parameters of prepared statements in SQL.

If you (debug) print the whole request_body instead of request_body.query in your example, you should see the part where the variables are passed.

Thanks for the tips! If I try to debug print (println!("{:?})) the request_body I get the error
the trait `std::fmt::Debug` is not implemented for `Variables`

Even though I have response_derives = "Debug" on my query. Do I need something more?

We should do a better job of documenting that, but there is a variable_derives = "..." option for the Variables struct.

We should do a better job of documenting that, but there is a variable_derives = "..." option for the Variables struct.

Fantastic, thank you! Now I can see my data in there. I had some issues where no data was returned from my graphql-query when I introduced variables so I thought it was due to the variable not being injected. But now I see that the error must be elsewhere.

We should do a better job of documenting that, but there is a variable_derives = "..." option for the Variables struct.

I realized I found about this feature before, but today I kept searching for its existence the entire day lol

For posterity's sake, I used variables_derives (add an s to variable) and not variable_derives. The latter didn't work.


[FLINK-14380][ScalaAPI] Passing inferred outputType to map and flatMap function

What is the purpose of the change
As suggested by @aljoscha in the JIRA, this pull request passes the inferred outputTypes from the ScalaAPI to the new map and flatMap function functions in the JavaAPI. An equivalent function already existed for process.
Brief change log
The Scala API did not pass the inferred output type to the map or the flatMap function in the Java API. So the Java type extractor tried to deduce the type and failed for Scala Case Classes.
With this pull request the inferred type is passed from the ScalaAPI to the JavaAPI.
Verifying this change
(Please pick either of the following options)
This change is a trivial rework / code cleanup without any test coverage.
Does this pull request potentially affect one of the following parts:

Dependencies (does it add or upgrade a dependency): ( no)
The public API, i.e., is any changed class annotated with @Public(Evolving): (yes )
The serializers: (no)
The runtime per-record code paths (performance sensitive): (no)
Anything that affects deployment or recovery: JobManager (and its components), Checkpointing, Yarn/Mesos, ZooKeeper: (no)
The S3 file system connector: (no)

Documentation

Does this pull request introduce a new feature? (yes)
If yes, how is the feature documented? (JavaDocs)

@flinkbot approve all

Thank you for this fix, merging for master and starting a discussion about backporting this.


Introduce block authorship soft deadline

Currently, when packing transactions to a block we have few conditions when we decide the block is ready to be signed by the consensus engine and gossiped to the network:

block size limit is reached,
block weight limit is reached (indirectly through "exhausts resources" errors)
we run out of transactions in the transaction pool,
deadline to produce the block is reached.

The first 3 I'd consider "regular" conditions, the last one is rather a safety valve, ensuring that the block producer does not miss it's slot due to some irregular slowness.
However, since optimal block packing is a difficult problem (i.e. producing a block with optimal utilisation, while maximising the cumulative priority of all transactions in that block), we use a very simple greedy heurstic currently, with a twist, that whenever we run into first transaction that reports resources exhaustion, we attempt to insert at least MAX_SKIPPED_TRANSACTIONS more to the block before concluding it's actually full.
This heuristic is obviously sub-optimal and can be gamed, hence the PR introduces another variant of the heuristic to potentially increase block utilisation, but without reaching the hard deadline defined by the consensus engine.
The PR introduces "soft deadline" (half of the hard deadline time). Before soft deadline is reached we can try as many transactions as desired from the transaction pool, even if they report resources exhaustion. After soft deadline we switch to the previous heuristic of trying at most MAX_SKIPPED_TRANSACTIONS.

What's the smallest size a tx can be?

That's a very good point, but it's up to the runtime to decide and we currently have no good way to ask the runtime about that. Also note that any additional heuristic we add, it should be added for both the size limit and the "resource/weight" limit to make sure we cater for all kinds of runtimes.

@bkchr can you take a look if soft deadline is okay, or if you'd rather prefer to add transactions up to the hard deadline?

What about failed test:
failures:
---- basic_authorship::tests::should_not_remove_invalid_transactions_when_skipping stdout ----
thread 'basic_authorship::tests::should_not_remove_invalid_transactions_when_skipping' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `2`', client/basic-authorship/src/basic_authorship.rs:759:13
stack backtrace:
   0: rust_begin_unwind
             at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/panicking.rs:515:5
   1: core::panicking::panic_fmt
             at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/core/src/panicking.rs:92:14
   2: core::panicking::assert_failed_inner
   3: core::panicking::assert_failed
   4: sc_basic_authorship::basic_authorship::tests::should_not_remove_invalid_transactions_when_skipping::{{closure}}
   5: sc_basic_authorship::basic_authorship::tests::should_not_remove_invalid_transactions_when_skipping
   6: core::ops::function::FnOnce::call_once
             at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/core/src/ops/function.rs:227:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
failures:
    basic_authorship::tests::should_not_remove_invalid_transactions_when_skipping
test result: FAILED. 6 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s
error: test failed, to rerun pass '-p sc-basic-authorship --lib'

?

What about failed test:
failures:
---- basic_authorship::tests::should_not_remove_invalid_transactions_when_skipping stdout ----
thread 'basic_authorship::tests::should_not_remove_invalid_transactions_when_skipping' panicked at 'assertion failed: `(left == right)`
  left: `1`,
 right: `2`', client/basic-authorship/src/basic_authorship.rs:759:13
stack backtrace:
   0: rust_begin_unwind
             at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/std/src/panicking.rs:515:5
   1: core::panicking::panic_fmt
             at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/core/src/panicking.rs:92:14
   2: core::panicking::assert_failed_inner
   3: core::panicking::assert_failed
   4: sc_basic_authorship::basic_authorship::tests::should_not_remove_invalid_transactions_when_skipping::{{closure}}
   5: sc_basic_authorship::basic_authorship::tests::should_not_remove_invalid_transactions_when_skipping
   6: core::ops::function::FnOnce::call_once
             at /rustc/c8dfcfe046a7680554bf4eb612bad840e7631c4b/library/core/src/ops/function.rs:227:5
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
failures:
    basic_authorship::tests::should_not_remove_invalid_transactions_when_skipping
test result: FAILED. 6 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.25s
error: test failed, to rerun pass '-p sc-basic-authorship --lib'

?

This is a flaky test

bot merge

I see, making soft_deadline(_percentage) configurable makes sense then.


Adding a toHomogeneousMatrix function to Motion

Currently Pinocchio has SE3::toHomogeneousMatrix but not Motion::toHomogeneousMatrix. It arose from this discussion that it would be consistent and convenient to have both.
Note that in the meantime we can always do the conversions in Python:
def to_homogeneous(twist: pin.Motion) -> np.ndarray:
     homogeneous = np.zeros((4, 4))
     homogeneous[:3, :3] = twist.action[:3, :3]
     homogeneous[:3, 3] = twist.linear
     return homogeneous

I can help prepare a PR if this makes sense.

OK to add this method to the Motion class, even if it is not a convenient way to use Motion quantities in terms of sparsity exploitation and general efficiency.

Solved via #1946


Ideas

First I'd like to thank you for this fine piece of software.
I'd like the possibility to monitor a folder and download subtitles every X hours.
I'd like the possibility to set a specific folder to store the subtitles. Obviously if there are matching subs in this folder the file is skipped.
Please let me know what you think of this ideas.

I'd like the possibility to monitor a folder and download subtitles every X hours.

I think that would be unnecessary & a waste of time quite frankly. It will consume a lot of memory too. Another reason would be you can select all files & put it in Caption to download all files.

I'd like the possibility to set a specific folder to store the subtitles. Obviously if there are matching subs in this folder the file is skipped.

Another problem with this is VLC adds subtitles if its the same name in the same folder. I think both your ideas are unnecessary. Simple is better & this app is on the point. Just my opinion though.

Feature suggestion:
Downloaded subtitles should be not in the current "movie_name.extension" format, but in "movie_name.country_prefix.extension" format. This allows downloading subtitles in two (or more) languages without renaming the downloaded files. Useful for bilingual families. :-)
Example:
Apocalypse Now.pt.srt
Apocalypse Now.en.srt
would be saved next to Apocalypse Now.mp4
Also, this is compatible with Plex and VLC, where the subtitle file's language is automatically identified based on the added two-letter country code, as per ISO 3166-1 (https://en.wikipedia.org/wiki/ISO_3166-1).
Thank you for this great little app.


[WIP] Update ipip tests for v3 integration

Description
Update ipip tests for V3 integration.
Todos

[ ] Test the tests

Release Note
None required

ICYMI, we have a calicoctl alpha image hosted here https://github.com/projectcalico/calicoctl/releases/tag/v3.0.0-alpha.1

@lwr20 the integration branch has been merged to master, so please rebase on master and re-open this PR against master once it's ready.
Thanks!


sabnzbd: Can only ever run as user called "sabnzbd"

Unfortunately the user and group configuration options do not carry through to the creation of the /var/lib/sabnzbd directory, as this is hardcoded to sabnzbd for the username. This directory has 700 permissions, meaning the service will not start if you try to run it as a different user.
https://github.com/NixOS/nixpkgs/blob/4ed0df40ea87766dda7ca5ff7095d9dd3cbd1370/nixos/modules/services/networking/sabnzbd.nix#L49C20-L49C27

Just learned this the hard way >__<;;

You can fix this by adding homeMode = "770" in the config for the sabnzbd user in the module:
users.users.sabnzbd = {
    uid = config.ids.uids.sabnzbd;
    group = "sabnzbd";
    description = "sabnzbd user";
    home = "/var/lib/sabnzbd/";
    homeMode = "770"; # Here's the fix!
    createHome = true;
};

770 would give full directory privileges to the sabnzbd user, along with anyone that you add to the sabnzbd group.
EDIT: Oh my god, I have had to edit this post like 10 times.

Here is an edit for your edit @Nanotwerp, which contains a missing semicolon ;)


add dev dependencies to language API

Coverage remained the same at 100.0% when pulling b8b8f28f82cec6279705057adf96c69ea273f74e on stephenplusplus:spp--language-deps into bbf43bb6d420a047629599fdf12c7c4184945ea0 on GoogleCloudPlatform:master.


Remove spec.service.provides and spec.service.consumes

Once https://github.com/application-stacks/runtime-component-operator/issues/64 is delivered, the operator will be relying on the Service Binding Operator to provide service-to-service binding.
At that point, we can remove spec.service.provides and spec.service.consumes to fully rely on the SBO to providing binding between different backing services (including Runtime Component Operator based applications).
This is a breaking change.

As an extension to this work, we should also:

remove bindings.*
add service.bindable

a boolean (default false) that signals the RC Operator to create a Secret with the service URL and (if applicable) the route URL, referencing the secret from status.binding.name.
this replaces bindings.expose.enabled

Resolved via PR https://github.com/application-stacks/runtime-component-operator/pull/231


Can you add a License?

Hello,
I found this project really useful and hope to use it at my day job. I noticed that you don’t have any open source license in your repo. Any chance you’d consider adding one? MIT or Apache2 would likely be perfect.
Thanks so much!"

is this enough? @sedayakamercan
Bty my views are open source projects should always, by default, be the most unrestricted license and there should be no need to mention a license at all. But I add one if most people need for whatever reasons ok.

great thanks so much @leonardoanalista !


 How you call yourself "mail for good", let alone how you sleep at night, is beyond me.

@ddevault We make it easier and less expensive for nonprofits to send emails to their mailing lists. If that's your opinion of the project, you are entitled to it.

What you do is enable spam.  The word "spammer" is synoymouos with "bad person" and you know it, you just cognative dissonanced your way into being able to sleep at night because being a bad person is probably how you make a living.


Add release documentation section and sub document stubs to portal

Hi, @NoopDog  - adding some exploration sketches of the release page and the project page, which are ideas only. Happy to discuss them, they're in no way final etc.

Thanks, Gabby


ens wallet and avatar

as a user, i have the option to link my address to end domain and set an avatar.
when i connect my wallet at bancor, i would like it to show my relevant end name and avatar.
mockup:
TBA
process:
following the process of "connecting wallet", we should initiate a fetch to pull the following data:

ens domain name -> use the connected wallet address to identify the defined ens name
avatar -> use the ens name to pull the avatar

tech:
identify the user's ens name:
https://docs.ens.domains/dapp-developer-guide/resolving-names#reverse-resolution
identify the user's avatar:
guide: https://gist.github.com/Arachnid/9db60bd75277969ee1689c8742b75182
npm library: https://www.npmjs.com/package/@davatar/react

hey there 👋🏼
i'd like to start working on this one

hey there 👋🏼 i'd like to start working on this one

Hi @frimoldi , thank you but this is still waiting for specs and is not ready for work

@zavelevsky oh ok, that make sense. I've created a little PR anyways with a proof of concept on how it might look. Feel free to discard or use it as you please.
https://github.com/bancorprotocol/webapp-v2/pull/469

nit: can we rename this issue to ens name and avatar, cuz ens is not a wallet 🙇🏻


[BUG] Not receiving didRecieveIncomingCall method on call agent delegate after successfully handlePush

Describe the bug
I am trying to receive an incoming pstn call. I am sending the push notification to apns. I based the push notification of the request here.
I'm getting the voip push notification on my phone, I'm able to report incoming call. And I can successfully handle the push with callAgent.handlePush(notification: callNotification), the error is nil in the completion handler. The issue is that after handle push the call agent delegate didRecieveIncomingCall (also I think Receive is spelt wrong on that method) is not being called to set the incoming call to accept it.
 String {
        print("Set Access token")
        print(acsAccessToken)
        Globals.acsAccessToken = acsAccessToken
        self.setUpCall()
    }

    let callNotification = PushNotificationInfo.fromDictionary(payload.dictionaryPayload)
    print("callNotification", callNotification.callId)

    let callKitOptions = CallKitOptions(with: CXProviderConfiguration())
    callKitOptions.configureAudioSession = self.configureAudioSession

    callKitOptions.provideRemoteInfo = self.provideCallKitRemoteInfo

    CallClient.reportIncomingCall(with: callNotification, callKitOptions: callKitOptions) { (error) in
        if error == nil {
            print("No error callProvider.reportNewIncomingCall")
            self.createCallAgent(displayName: "Mitch"){
                self.callAgent?.delegate = self.acsCallAgentAdapter
                if self.callAgent?.delegate == nil {
                    print("callAgent?.delegate not set")
                }

                print("callNotification.eventType")
                print(callNotification.eventType.rawValue)

                self.callAgent?.handlePush(notification: callNotification) { (error) in
                    if (error == nil) {
                        print("Handling of push notification was successful")
                    } else {
                        print("Handling of push notification failed")
                        print("error", error)
                        print("debugDescription", error.debugDescription)
                    }
                }
            }
        }
        else{
            print("callProvider.reportNewIncomingCall failed")
        }
    }
}

`
`
class AcsCallAgentAdapter: NSObject, CallAgentDelegate {
func callAgent(_ callAgent: CallAgent, didRecieveIncomingCall incomingCall: IncomingCall) {
print("didRecieveIncomingCall")
// set up delegate and emit to React Native
}
func callAgent(_ callAgent: CallAgent, didUpdateCalls args: CallsUpdatedEventArgs) {
print("didUpdateCalls")
}
}
`
Code to get the incomingCallContext and format to send to apsn
`
$incomingCallContext = $data['incomingCallContext'];
            $parts = explode('.', $incomingCallContext);
            $part = utf8_decode(base64_decode(utf8_encode($parts[1])));

            $request = [
                'callId' => $data['correlationId'],
                'videoCall' => false,
                'recipientId' => $data['to']['rawId'],
                'callerId' => $data['from']['rawId'],
                'displayName' => "Mitch",
                'eventId' => 107,
                'access_token' => $acsToken->access_token,
                'cp' => json_decode($part)->cc
            ];

`
Expected behavior
Expecting didRecieveIncomingCall method to be called after call agent handle push
Screenshots
If applicable, add screenshots to help explain your problem.
Setup (please complete the following information):

OS: macOS 14.3.1
IDE : Xcode 15.3
AzureCommunicationCalling 2.8.0

Additional context
I don't call register for push notifications on call agent as I am sending it from our backend when we receive the incoming call context based on this here
I'm not using the call kit integration on the call agent in this example but have tried that as well with the same issue.
Information Checklist
Kindly make sure that you have added all the following information above and checkoff the required fields otherwise we will treat the issuer as an incomplete report

[x] Bug Description Added
[x] Repro Steps Added
[x] Setup information Added

@raosanat can you take a look?

Are you able to reproduce this 100% of the time ? Can you please check with the latest SDK 2.9.0 it will help us identifying the issue. We have added some more telemetry to help debug such issues.

Yeah it is happening 100% of the time. I also tried to send push notifications for an incoming call to the example repo here and had the same issue with the same message handle push successful but no call to the call agent delegate.
I'll try out 2.9.0 and see if it helps

I've update the sdk to 2.9.0, I'm still receiving the call kit incoming call. Everything is the same except callAgent handle push is no longer saying it was successful but it is also not producing an error.
self.callAgent!.handlePush(notification: callNotification) { (error) in
    if (error == nil) {
        print("Handling of push notification was successful")
    } else {
        print("Handling of push notification failed")
        print("error", error)
        print("debugDescription", error.debugDescription)
    }
}

However, I'm getting a new error:
Updating selectors after delegate addition failed with: Error Domain=NSCocoaErrorDomain Code=4099 "The connection to service with pid 99 named com.apple.commcenter.coretelephony.xpc was invalidated from this process." UserInfo={NSDebugDescription=The connection to service with pid 99 named com.apple.commcenter.coretelephony.xpc was invalidated from this process.}
And
nehelper sent invalid result code [1] for Wi-Fi information request.
I'm sure the app has wifi as I have it open and can refresh the content connected to my backend. I believe the first new error is from setting the call agent delegate because if I move it after callAgent handle push the first error does not appear. For signing capabilities I have both 'Background Fetch', 'Background Processing', and 'Voice over IP'
Not sure if it helps but the call id was 23F4BE7C-2C0C-4205-8324-EB88367CC6FF

Can you provide a bit more info like createCallAgent function definition?
Also can you get the acs blog files from your application. They are located in the Cache directory, here is the way to access that folder https://forums.developer.apple.com/forums/thread/21660. Once there find all acs-*.blog and msrtc.*blog files as well.

Here is my createCallAgent function. I'll look into getting the blog files
func createCallAgent(displayName: String, completion: @escaping (() -> Void)){
        var callAgentOptions = CallAgentOptions()
        callAgentOptions.displayName = displayName

        self.callClient?.createCallAgent(userCredential: userCredential!, options: callAgentOptions) { (agent, error) in
            if error != nil {
                print("ERROR: It was not possible to create a call agent.")
                return
            }
            else {
                print("createdCallAgent")
                self.callAgent = agent
                completion()
            }
        }

        print("end createCallAgent")
    }

@MitchMooreVH Thank you for the info, also if possible a small project with basic setup that can repro the issue would help a lot. If not, the logs will already get us a more information to understand the problem.

Closing this due to inactivity, feel free to reopen if you still seeing this issue.


keep all_deps list in state created for building deps

I don't really like it. I feel we are getting more and more one off "save this state here" spots that may bite us later. We may want to look at splitting state into 2 types, 1 that is the constant changing state we are currently storing in app_info as well and another that is higher project stuff like all_deps.
This change is necessary so a dep that builds itself into an escript is still able to.

Yeah that makes sense. +1 to it.
It seems more and more we'll have to identify and break up types of state:

inheritable vs per app scope
immutable vs mutable (default opts vs. profile applied opts)
rebar3 state vs. provider-specific state (set/unset before each step of a run)

Ideally I guess we'd have a very simple set of operations: inherit_state, reset_to_current, fork_for_run and merge_from_run, or something like that (we obviously need to think about this hard). And all copying/resetting operations could be regrouped in some of these to make the code a shitton simpler.


[Bug]: The select won't open on click

Bug description
If openOnFocus: false, clicks don't open the select, neither does the key Space.
Auto focus events are noise to a screen reader (jumping from document to element back to document).
Expected behavior
Clicking the control or hitting Space should open the select.
Steps to reproduce
https://codepen.io/Raven0us/pen/GRLKNGX
Additional context
Latest version

Confirming, with openOnFocus: false options dropdown doesn't open at all.

I think this is by design? With openOnFocus: false it opens only when the user types something and the search matches. I actually use this.


Use GCP Project ID for Pub/Sub

Use GCP Project ID for Pub/Sub as SDM (Device Access) Project ID doesn't work.
Hit the following error (time and Project ID masked for privacy) while I'm sure the OAuth token has https://www.googleapis.com/auth/pubsub granted.  After a few trial and errors I've found if I use the GCP Project ID for Pub/Sub it would work perfectly.
The pull request in its current form clearly could break existing configuration since it mandates a new field.  I'm happy to make additional changes if needed.
[01/01/2022, 00:00:00] [homebridge-google-nest-sdm] Plugin initialization failed, there was a failure with event subscription. Did you read the readme: https://github.com/potmat/homebridge-google-nest-sdm#where-do-the-config-values-come-from StatusError: Requested project not found or user does not have access to it (project=01234567-89ab-cdef-0123-456789abcdef). Make sure to specify the unique project identifier and not the Google Cloud Console display name.
    at MessageStream._onEnd (/usr/local/lib/node_modules/homebridge-google-nest-sdm/node_modules/@google-cloud/pubsub/src/message-stream.ts:301:20)
    at MessageStream._onStatus (/usr/local/lib/node_modules/homebridge-google-nest-sdm/node_modules/@google-cloud/pubsub/src/message-stream.ts:342:12)
    at ClientDuplexStreamImpl.<anonymous> (/usr/local/lib/node_modules/homebridge-google-nest-sdm/node_modules/@google-cloud/pubsub/src/message-stream.ts:198:38)
    at Object.onceWrapper (node:events:510:26)
    at ClientDuplexStreamImpl.emit (node:events:390:28)
    at Object.onReceiveStatus (/usr/local/lib/node_modules/homebridge-google-nest-sdm/node_modules/@grpc/grpc-js/src/client.ts:675:16)
    at Object.onReceiveStatus (/usr/local/lib/node_modules/homebridge-google-nest-sdm/node_modules/@grpc/grpc-js/src/client-interceptors.ts:424:48)
    at /usr/local/lib/node_modules/homebridge-google-nest-sdm/node_modules/@grpc/grpc-js/src/call-stream.ts:323:24
    at processTicksAndRejections (node:internal/process/task_queues:78:11) {
  code: 5,
  details: 'Requested project not found or user does not have access to it (project=1234567-89ab-cdef-0123-456789abcdef). Make sure to specify the unique project identifier and not the Google Cloud Console display name.',
  metadata: Metadata { internalRepr: Map(0) {}, options: {} }
}

@wmil: Thank you so much for contributing!
Do you have any idea why this is necessary?  That is, why the SDM project ID works fine for me but not for you?

I don't have an answer to that but I can share my train of thought.
The work flow to create these credentials --

As the owner of the GCP project owner -- Create a GCP project (my-gcp-project) and establish an OAuth client inside this GCP project.
As the owner of the Nest devices owner -- Create an SDM project which is directly linked to the account's Nest devices -- the SDM Project ID seems to be some concept only in SDM world, see sdm-prod below.
As the owner of the Nest devices owner -- Grant access so that the GCP project / OAuth client will be able to access resources inside the SDM project.
As the owner of the GCP project owner -- Create a Pub/Sub Subscription (projects/my-gcp-project/subscriptions/my-subscription-id) inside the GCP project to track a Topic exported by SDM (sdm-prod could be the GCP Project ID for SDM, as seen in the Topic path projects/sdm-prod/topics/enterprise-*).

Here we can note --

The SDM Project ID seems to be a concept only in the SDM world (another GCP project, sdm-prod), and the GCP infrastructure is unaware of it.
Our interaction with GCP Pub/Sub from Homebridge is to access a Subscription my-subscription-id inside our GCP project my-gcp-project, and if we follow GCP Pub/Sub docs, this should be the one to use in establishing the connection.

If this logic is right, it's reasonable to use GCP Project ID for Pub/Sub.  Why the SDM Project ID worked for you remains a mystery to me...

When doing this step: https://github.com/potmat/homebridge-google-nest-sdm#where-do-the-config-values-come-from
Which project-id did you put in the URL?

I have run into this issue as well. @potmat +1 for this PR making its way through!

Breaking both project ids out into separate properties is necessary. Once you supply the gcp project id as the config's projectId, while pub/sub initialization now works, calls to the actual sdm interface will 404 since they are using the same config property (projectId), which doesn't contain the sdm project id.

@jkossis and @wmil which project ID are you using when you do this step: https://github.com/potmat/homebridge-google-nest-sdm#where-do-the-config-values-come-from?  That is, do you substitute the SDM project ID into the URL or the GCP project ID?

@potmat in the section where you specify to use the modified url, to include the extra pub/sub scope, the sdm project id is substituted in.
@wmil's comment highlights this as well.

@jkossis : Ok fair enough, I don't really understand why but I will merge this soon.  I'm sorry for the delay but we are back under various lockdowns/school closures here in Ontario right now so.... I have been delayed.

@potmat Thank you, 1.0.20 works.

@potmat Following your latest README update, the reason that it worked for you but not for me became clear.
The Subscription ID you used was in the form of projects/my-gcp-project/subscriptions/my-subscription-id.
The one I used was just my-subscription-id.
The terminology for the longer string seems to be "Subscription Name" on GCP and hence the confusion.

Yes too late I realized that subscriptionId was the wrong name for the property.  I'm not sure I can change it now without breaking everyone's installations.  I've changed the name in the config UI to just "Subscription" and added the example to clear up confusion.
I wonder if this means we no longer need the gcpProjectId?


Feature: NATS watch by KV and Object storage via decorator

So is this feature merged or still open?
We would like to watch on a key, not clear if that is possible now...

Originally, we were planning to implement this feature in the PR, but didn't do it. This feature is in backlog for now.

@Lancetnik do you have any directions on how-to implement it even in most naive way?

It's not a big deal, we just need to create an extra NATS handler class, but it requires to release 0.5.0 at first (it can takes a couple off weeks 😢)


FEATURE: Add acceptedCurrencies to listing index.

Partially completes #962
It was already in listing show pages but not the index.

Coverage decreased (-0.002%) to 31.42% when pulling 6020817e11b268d8c4e064ac02db283b328205e2 on TS_accepted_currencies_in_listings into 7e5acb3375a85018b635eac8f4114f490687255e on master.

So I assume eventually we're going to deprecate the coinType field correct?

@cpacia It's the coin that cryptocurrency listings are selling. So if you're selling BCH it'll be BCH.

It's double tested so IDK why it says coverage is lower. Travis is passing.


indexes on other tables disappear after i create a new one

I create a new index with docs.create_index() on a new table, and noticed that old indices created similarly on another table disapear. Should I somehow mark all of them as unique? I thought the name of the index gets created with unique name and should not be viewed as duplicate? Thanks!

could you please provide some sample code I can use as a reproduction case?

not sure there is much code to provide, other than the vecs code
but basically , i create a table
import vecs
DB_CONNECTION = "__"
vx = vecs.create_client(DB_CONNECTION)
docs = vx.get_or_create_collection(name="adlumal/auslaw-embed-v1.0", dimension=384)
upload a table id/vec/metadata
then run docs.create_index()
after i run docs.create_index() on another existing table, the one from the first one disappear.
my gut feeling is that "is_unique" should be set TRUE by default but I am not 100% certain
i mentioned before that i spent a week recently building an hnsw index after the previous one disappeared somewhere, only now i see what's happening after having played with smaller tables.
to replicate , try to create a couple of tables first and then run create_index over one after another.
if create_index is the same as pgvectors hnsw , cosine , with m=16, and ef_construction = 64, and no more variables, should i run rather pgvector index with these parameters?

thanks for reporting
yes, I just released it in version 0.4.4
https://pypi.org/project/vecs/0.4.4/


Add busted test runner via GH Actions

This PR should probably be considered after #74 so the dev rockspec gets published, but I though I'd work on getting the Busted tests going early.

Hmmm, testing this is somewhat complicated by the fact that Busted itself depends on cliargs making for a circular catch 22. Humph.


Command for one shot sync and include ignored files

In some projects, I have some big ignored files (SQL dumps).
I still need them to be transfered initially on project first sync, or manually trigger their transfer with a command, but I don't want them to be synched automatically like other files for performance reasons.
In some other case, I would like to sync .git directory before performing a build, because build script of the application is grabbing the version through git.
I think of a new command like this one
mutagen sync --disable-ignore <session-id>
mutagen sync could perform a "one shot" sync, and --disable-ignore force inclusion of ignored files.
mutagen sync command would return only when the one shot sync is terminated (=all files are transfered).
I'm still not sure it's worth ignoring those big files ? Does it have a big impact on performance when those files almost never change ?

If the large files don't change (in terms of contents, modification time, size, or permissions), then there won't be any performance impact from allowing them to be synchronized.  Mutagen will see that they haven't changed any won't do anything with them.
If they do change, Mutagen will use the rsync algorithm to transfer them, so only the segments of the file that are different from the other side will be transferred.  The rsync transfers are also compressed using FLATE (gzip) compression, which for the content of SQL dumps will be highly effective.
If you need to synchronize them, I would just include them in the synchronization.
Enabling and disabling ignores is quite difficult in the context of a three-way merge.  It has a lot of side-effects that aren't immediately obvious.  The particular idea that you're proposing might be possible, but I don't really want to make the interface more complex to support a very specific case.
I would propose trying to just synchronize the large files (i.e. don't ignore them).  If there is a performance issue, I would prefer to fix that.
Regarding the .git directory, I would strongly advise that you avoid synchronizing it for the reasons that I outlined here.  The .git directory is machine-specific, because the Git index stores inode numbers and other values that depend on where it is.  Git will also rewrite this file on (almost) every git command, so you'll have a lot of additional synchronization overhead, and you may run into issues with Git's garbage collection.
I understand why you're synchronizing the .git directory.  I'm not sure about the best alternative.  Which git command are you using on the remote to get the information you need?

$ git describe --tags`
1.1.0

Maybe I can sync only a few files inside .git directory to make this command work ?

I tried to remove some directories and files from .git directory, but it makes the describe commands fail. It doesn't seem to be a solution for this use case, but it's not a big deal, for now a manual git pull on the remote side before building the app will do the job.
Good to hear big files doesn't impact performances at all.

I tried to remove some directories and files from .git directory, but it makes the describe commands fail.

I was wondering if maybe you could make it work by syncing only a safe subset of the .git directory, but I think almost every Git command these days tries to hold the index lock.  Also, in order to emulate the functionality of git describe --tags with a custom script, you'd almost certainly need access to the whole Git object store, because you'd need to walk back the commit history to the last tag.
Unfortunately there's just not really a good way to sync .git directories other than using Git itself, and even then they won't really be exactly the same.  They'll have the same "content", but they'll have different index files and different organization for their object stores, among other issues.
The best option might be to try invoking the build from your local machine with a script that looks something like
#!/bin/sh

ssh user@host /path/to/sync/directory/build_command --tag=$(git describe --tags)

That way the git describe --tags command would be run locally and then passed to the remote build script.  You'd have to make build_command (whatever that might be) take the tag as a flag and you'd probably need to make it change its working directory to the directory where it's located, but you get the idea.  You could also make it use SSH's ControlMaster support so that it's fast to re-run, etc.
If you come up with a solution, please let me know.  I suspect you won't be the last person to ask about that.  I want to make a section of documentation dealing with just repositories, because that will probably be 99.9999% of the files that people synchronize.  If there's a good workflow for pushing over the tag/commit information for tagging builds, it would be good to share.

Good to hear big files doesn't impact performances at all.

Yeah, even large binary files will be fast with the rsync algorithm.  If you modify a single byte in a 10 GB file, only the part of the file affected by the change will be transferred, usually only a few KB.


Code splitting?

You could probably make a script or binary using a template tool to allow code splitting your 20000 line script into more readable bits. Would make contribution and reading code a lot easier. You could set up a github action to construct the finished script and create a release.

Using something more advanced like https://github.com/kataras/blocks you could probably even get like macro-like functionality working, allowing you to shorthand repeated code. Would be a foundation for a sort of SQF compiler.

I don't think this is ever gunna happen. It just doesn't really need to be done because of the modularity systems I've added. Maybe it would make it more maintainable or easy to contribute to but most people don't do that so it's really a non-issue.


Add ort integration testing.

What does this PR (Pull Request) do?
This PR adds integration testing to the TrafficOps ORT packages.

[x] This PR is not related to any Issue

Which Traffic Control components are affected by this PR?
What is the best way to verify this PR?
See traffic_ops_ort/testing/README.md for running these tests.
The following criteria are ALL met by this PR

[X] This PR includes tests OR I have explained why tests are unnecessary
[X] This PR includes documentation OR I have explained why documentation is unnecessary
[ ] This PR includes an update to CHANGELOG.md OR such an update is not necessary
[ ] This PR includes any and all required license headers
[ ] This PR DOES NOT FIX A SERIOUS SECURITY VULNERABILITY (see the Apache Software Foundation's security guidelines for details)

@jrushford I Approved, and it looks like everything is passing except Weasel.
Looks like this line needs changed: https://github.com/apache/trafficcontrol/blob/master/LICENSE#L385
and the line following it, to remove /traffic_ops

@jrushford I Approved, and it looks like everything is passing except Weasel.
Looks like this line needs changed: https://github.com/apache/trafficcontrol/blob/master/LICENSE#L385
and the line following it, to remove /traffic_ops

Go files that are meant to run when you use go test should have the _test.go suffix

Are you talking about the go files in testing/ort-tests/tcdata?  I don't want them run as tests.  I'm using them to load test fixtures data and when they fail to load some portion of the fixtures data I'll know about it.

Go files that are meant to run when you use go test should have the _test.go suffix

Are you talking about the go files in testing/ort-tests/tcdata?  I don't want them run as tests.  I'm using them to load test fixtures data and when they fail to load some portion of the fixtures data I'll know about it.

Before I look through all the rest of this, did you consider re-using the CiaB architecture at all? It seems like there might be some duplicated pieces here, esp. for Riak

I'm not going to use the CiaB Dockerfiles as I don't need the enrollee.  As I mentioned to you when work on the automation piece I might redo the RIAK container to use the image from CiaB RIAK equivalent.

Before I look through all the rest of this, did you consider re-using the CiaB architecture at all? It seems like there might be some duplicated pieces here, esp. for Riak

I'm not going to use the CiaB Dockerfiles as I don't need the enrollee.  As I mentioned to you when work on the automation piece I might redo the RIAK container to use the image from CiaB RIAK equivalent.

Tests don't appear to pass: https://pastebin.com/xFtQq1eh

Tests don't appear to pass: https://pastebin.com/xFtQq1eh

Tests don't appear to pass: https://pastebin.com/xFtQq1eh

@ocket8888 Where was that ATS RPM from?  Did you grab one from the CDN repo?  Here is the error, that RPM has an unsatisfied dependency on libmagic.  Try an RPM from the CDN repo such as, trafficserver-8.1.0-41.f25b59e.el7.x86_64.rpm
There is a lot in that log but,  the problem:
ERROR: t3c.go:122: 2021-01-27T21:15:05.25734678Z: Error processing packages: Unable to install trafficserver-8.0.3-1.el7.x86_64 : Error executing '/usr/bin/yum': Error: Package: trafficserver-8.0.3-1.el7.x86_64 (traffic-control)            Requires: libMagickCore.so.5()(64bit) Error: Package: trafficserver-8.0.3-1.el7.x86_64 (traffic-control)            Requires: libMagick++.so.5()(64bit)

Tests don't appear to pass: https://pastebin.com/xFtQq1eh

@ocket8888 Where was that ATS RPM from?  Did you grab one from the CDN repo?  Here is the error, that RPM has an unsatisfied dependency on libmagic.  Try an RPM from the CDN repo such as, trafficserver-8.1.0-41.f25b59e.el7.x86_64.rpm
There is a lot in that log but,  the problem:
ERROR: t3c.go:122: 2021-01-27T21:15:05.25734678Z: Error processing packages: Unable to install trafficserver-8.0.3-1.el7.x86_64 : Error executing '/usr/bin/yum': Error: Package: trafficserver-8.0.3-1.el7.x86_64 (traffic-control)            Requires: libMagickCore.so.5()(64bit) Error: Package: trafficserver-8.0.3-1.el7.x86_64 (traffic-control)            Requires: libMagick++.so.5()(64bit)


Need Suggestion

If i will use your code along with some minor changes. Then will i be able to distribute it legally in playstore if i will mention your name in the description of playstore. (As you have licensed your code under MIT License).

You can see what the license states here https://tldrlegal.com/license/mit-license
Basically copyright + license have to be mentioned.
Also, pull requests are welcome. :P


New project:Patreon clone

A Patreon clone is a platform that enables creators to earn recurring income by offering exclusive content and rewards to supporters.

@ShantannuDev2003 thank you for your contribution to this repo. can pls list it to projects.js with it's icon.


Folder transfers don't create folders at the given directory

Title of Bug
Folder transfers don't create folders at the given directory
Details
Bug Description
For folder transfers, the files are transferred to a wrong directory.
1.
Steps to reproduce bug

Attempt a folder transfer from any protocol/platform to a sub-directory of the platform.
e.g. Some folder named Test to ROOT/Folder1/Folder2/, the Test folder is created at ROOT/Folder1/Folder2/Folder1/Folder2/Test/

Issue only with Google drive as the destination. Other destinations work fine.


Using from a ClojureScript / Reagent and/or Electron App

Hey Zach, how could I use paren-soup in a React-based ClojureScript app using something like Reagent?

Nightlight is a Reagent app that uses paren-soup. However, reagent doesn't manage the div that paren-soup is inside of. Generally React discourages you from trying to make it manage contenteditables.


Adds toString for Endpoint debugging

Ideally this would be json so it matches other ones. I think zipkin.Endpoint is json string. If there's anything existing converter I might suggest changing to zipkin then to string.  This will make ip addresses far easier to read.


Change "away" state to align with device_trackers use of "not_home"

Description:
The current component sets state to "away" when presence is not detected across any of the monitored rooms. This PR changes that to be inline with device_trackers use of "not_home". This would be a breaking change but provides consistency/support with multi-device presence detection.
@mKeRix , Heiko, appreciate any feedback on this (albeit a minor change)
Related issue (if applicable):
Pull request in home-assistant.github.io with documentation (if applicable): TBD
Checklist:
If user exposed functionality or configuration variables are added/changed:

[ ] Documentation added/updated in home-assistant.github.io
[x] Local tests with tox run successfully. Your PR cannot be merged unless tests pass

not_home doesn't make sense for a person not being in a room. They might still be home, just in the next room.

Depends on the setup I guess - if you have full home coverage, not being in any room means that the person is not home at all. At some point the integration between device and multi-room trackers could probably benefit from some improvements, but arguably there aren't enough options out there to warrant the work.
As I said at mkerix/room-assistant#27, this is ultimately up to what you guys think.

Oh, my bad. I didn't realize this was a catch all sensor representing all rooms at once. I guess not_home could work.

Yes, this is a multi-room sensor and only reports away if you aren't detected by any of the ble/ibeacon receivers in the house. So this PR brings the component into alignment with other trackers by publishing "not_home" rather than "away" in that scenario.


Generate Signals

This PR currently generates signals with the correct syntax, and with the entire project compiling.
The codegen part is itself complete (minus some edge-case features that we may want to consider down the road), however I haven't yet implemented the generic SignalArgs-based argument classes for signals with additional parameters.
TODO:

[X] Generate Signal descriptors
[X] Generate Signal event handlers
[x] Generate SignalArgs-based classes
[x] ~Generate SignalHandler delegates that use the above~ (assume return values are unsupported for now)
[x] GValue Marshalling
[x] Test this all in practice
[x] Create custom eventhandler which do not require any null value handling or casting for custom SignalArgs
[x] Make SignalArgs fields pascal case
[x] Make SetArgs method internal and provide protected Value[] to extract the data from

Run into a bit of trouble. Seems like Parameters aren't getting serialised in GSignal while the exact same code (and XML elements) works for GMethod. For that matter, neither are Return Values.
Adding this in GenerateClasses in GObjectGenerator should illustrate what I mean:
// GObjectGenerator.cs
// Inside GenerateClasses()
if (cls is GClass)
{
    if (cls.Name == "Object")
        System.Console.WriteLine("Detected: GObject");

    foreach (var signal in (cls as GClass)!.Signals)
    {
        if (signal?.Parameters != null)
        {
            System.Console.Write("Parameter!");
        }
    }
}

Not too sure what's going on. I might be missing something obvious here.
Any ideas?

@firox263  You have to add the namespace of the repository to the properties. The glib:signal xml element is explicity in the glib namespace. I suppose that the return-value and parameters elements are not part of this namespace and therefore not found.
I added the parameters in your branch. It should be working now.

@firox263 You have to add the namespace of the repository to the properties. The glib:signal xml element is explicity in the glib namespace. I suppose that the return-value and parameters elements are not part of this namespace and therefore not found.
I added the parameters in your branch. It should be working now.

Ahh thanks, that makes a lot more sense thinking about it.
I've managed to get the SignalArgs generation to a good point, however the final blocker before this can be merged is how we marshal between GValue and the individual concrete types of each parameter.
// DBusConnection.Generated.cs

/// <summary>
/// Signal (Event) Arguments for OnClosed
/// </summary>
public sealed class ClosedSignalArgs : SignalArgs
{

    /// <summary>
    /// %TRUE if @connection is closed because the
    ///     remote peer closed its end of the connection
    /// </summary>
    public bool remote_peer_vanished;

    /// <summary>
    /// a #GError with more details about the event or %NULL
    /// </summary>
    public GLib.Error? error;

    public override void SetArgs(Value[] args)
    {
        // FIXME: Marshalling
        // We need to find a way to marshal from GValues to the concrete
        // type of the parameter. This will probably involve a generator-side
        // type dictionary which stores rich type information as we
        // walk through the introspection data.

        remote_peer_vanished = args[1].To</* Type Goes Here */>();
        error = args[2].To</* Type Goes Here */>();
    }
}

Since we're generating one SignalArgs-based class for every signal with non-default properties, I'm debating whether using GClosure is actually helpful, since we're not really using GValues and they only serve to add more overhead. I might experiment with using Signals or CClosures directly later on, but right now GValues should be more than fine.
The main point is finding a way to determine the type of marshal for a given type (e.g. GLib.Error should use g_value_get_boxed from what I can gather).

Thanks @badcel for the review.
Unfortunately, I don't think I'll have the time to work on this for at least the next two weeks. If you guys would like to pick this up and work on it in the meantime, feel free to commit in this branch, otherwise I'll try and get back to it later this month.
Currently, signal generation is almost complete. The last step is, as I mentioned above, is marshalling to/from GValues, which will probably need some changes to the generator's type resolver.

It is working!
What do you guys think of a custom eventhandler which allows the sender to be of the type of the corresponding class (no casting required). At least for classes with custom eventargs this is possible.
 public static void OnSwitchedPage(Notebook? sender, Notebook.SwitchPageSignalArgs args)

in contrast to
public static void OnSwitchedPage(object? sender, Notebook.SwitchPageSignalArgs args)

I would like to have this, because for our declarative UI defintion style the sender is more important, because there is no variable which stores the GObject.

@badcel: It is working!

Great work! I've been catching up with the work on this branch, and everything is working well so far.

@badcel: What do you guys think of a custom eventhandler which allows the sender to be of the type of the corresponding class (no casting required). At least for classes with custom eventargs this is possible.

I don't have a strong opinion here, the only reason I went with object? sender is because it means we have much less to generate. Additionally, since winforms does it this way, it's consistent and familiar to other C# devs.
At the same time, native Gtk has concrete types in callback functions like you suggested, so I suppose it's a case of what we think is a better API. Completely up to you guys, I'm happy with either.
+Thoughts @na2axl?

To ease back into the project, I've had a go at cleaning up QuickStart and fully commenting it (tutorial-style), so I'll finish that off and open a PR soon.
@badcel One question about Signals. Why do we need the ? in object? sender? As far as I can tell, sender will always be non-null due to the assumptions we've made (since our wrapper always outlives the underlying GObject). Is there any reason this couldn't just be: MyCallback(object sender, SignalArgs args).

@badcel One question about Signals. Why do we need the ? in object? sender? As far as I can tell, sender will always be non-null due to the assumptions we've made (since our wrapper always outlives the underlying GObject). Is there any reason this couldn't just be: MyCallback(object sender, SignalArgs args).

Yes we can change it. But as long as we use EventHandler we are forced to have the "?". I think they added the question mark to make legacy code more bullet proof, because there are probably programs which do not fill in the sender object, but are using the EventHandler delegate nevertheless.
As GTK guarantees the sender to be present (afaik) we can create our own delegates for events and make it concrete. As this takes the casting and null checking away from the users of our library: I think it is a good idea.
Another point I want to add to this PR is that our generated SignalArgs fields do not use PascalCase in the moment. I think we should change this.
Another point is that we should make the SetArgs method internal and the Args field protected and non-virtual. In this way we hide the the method from the public API. Derived classes from SignalArgs can still access the protected field to extract the values in there properties on demand (meaning less code is executed).
From my point of view we could merge this, if these points are done.
All in all I'm very happy with the direction we are moving right now. :rocket:

Hi @badcel, @firox263 I'm very happy to see how the project is now 😍

@firox263: At the same time, native Gtk has concrete types in callback functions like you suggested, so I suppose it's a case of what we think is a better API. Completely up to you guys, I'm happy with either.

@badcel: As GTK guarantees the sender to be present (afaik) we can create our own delegates for events and make it concrete. As this takes the casting and null checking away from the users of our library: I think it is a good idea.

I think we can help the end user to be less error-prone as possible. Since GTK already guarantees that the sender is present and not null, I agree with @badcel to create our own delegates.
Another idea I just have is to add a way to let the user Disconnect() a signal handler using indexer. What do you think about this syntax:
// Connect a signal handler
button[Button.ClickedSignal] = OnButtonClicked; // What we are doing now will not change

// Connect a signal handler
button[+Button.ClickedSignal] = OnButtonClicked; // Full syntax with the new implementation

// Disconnect a signal handler
button[-Button.ClickedSignal] = OnButtonClicked; // The way to disconnect using the new implementation

I don't think if this is really necessary since the end user will surely not use it in the object initialization, and it's not really different to the traditional event syntax button.OnClicked -= OnButtonClicked. But what are your thoughts @badcel, @firox263 ?

I think it looks quite interesting and I would like to see how it is done. As it is not hurting we can have it available. But at least from my current point of view it will be used quite seldom.

Ok @badcel I will try it, this may end to the need to modify a bit the signal generator since I will have to introduce a feature I planned to implement in the Toolkit layer, SignalIndexerDescriptor (to connect/disconnect signals) and PropertyIndexerDescriptor (for MVVM binding on properties).

@na2axl Perhaps you can do a separate pull request into this branch for the SignalIndexerDescriptor and PropertyIndexerDescriptor so we can evaluate before merging?

I updated the code to support concrete signal handlers.
Now we generate a lot of indexers but this has a positive effect: We can't add a SignalHandler for a Button in the Notbook object and vice versa. Beforhand it was possible to add the SignalHandler for the Button.ClickedSignal into the Notebook object. :sunglasses:

Hi @badcel, @firox263, talking about indexer descriptors, I think it will be better to finally implement it in the Toolkit layer, since it will add more complexity to the Core layer, and they are not really directly related to GNOME libraries...

@na2axl Hi @badcel, @firox263, talking about indexer descriptors, I think it will be better to finally implement it in the Toolkit layer, since it will add more complexity to the Core layer, and they are not really directly related to GNOME libraries...

Okay :+1: In this case I would prefer to see the code in the toolkit layer, too (if possible).
It is done. For me this is the code we can start to improve on. From my point of view the other pull requests are now obsolete. If you agree i would discard them @firox263 @na2axl ?
The next qustion would be if we merge this into develop? Then we can push further progress directly into develop and don't need to make PRs for PRs all the time.
I would be okay with merging this into develop as the general direction of the code is now settled and we have some working samples.

@badcel what if we merge all theses PRs recursively to finally merge #52 in develop ? Beside that, I've no problem for merging this directly in develop 🙂.

Adding to what @na2axl said, I would be in favour of doing it this way, merging #52 into develop. I think we've managed to get a very solid base for moving forward with.
When we're ready to merge, I plan on spending some time on getting our documentation up to date. I've been wanting to revisit the website for some time and I'll look into generating an API reference while we're at it.

Okay we can do it recursively :+1: Then we don't loose all our comments which are still an important part of this.
Do you guys think that we are actually ready to merge or do we want to continue polishing things up with more stacking of pull requests?
My vote is for merging, because I think we are like rebooting the project and the code in develop is giving quite a false impression of this project in the moment.

I agree to merge. We have managed to get a good code base for further improvements. For cleaning code and other stuffs we can consider doing this on that new code base.

I agree. I think we should merge now, and work on fixing any remaining issues in develop.
If we're all in agreement, would you like to go ahead and merge? @badcel

@badcel, please wait a bit before merge, I'm currently refactoring all the code according to our .editorconfig. I will open a PR for this branch when finished.

@badcel, @firox263 I've noticed that the generation of properties is disabled, it is intended ? I didn't know about that...

@na2axl I've noticed that the generation of properties is disabled, it is intended ? I didn't know about that...

Yes at the current stage this is intended. We agreed to start without property generation here (at least nobody argued against it): https://github.com/gircore/gir.core/issues/68#issuecomment-706220665
I'm still waiting for feedback regarding my last proposal from you guys regarding property generation. I think this could be a possible solution: https://github.com/gircore/gir.core/issues/68#issuecomment-706746999


Add musatanko's file

i have created a branch, created a file and made a commit, and open a pull request


About checkpoint

Great job!! When will your group release a demo checkpoint?

You can get the model ckpt for demo in model.


Fix typo in README.md

Description

Make the following grammatical corrections to line 97 of the README file:

"has into account" should be "takes into account".
"Riemannian conjugate gradients optimization" should be "Riemannian conjugate gradient optimization" (singular form).
"and following a geometric approach" should be "and follows a geometric approach".

Related Issues

None
References

Uhmm... Dictionary?
Checklist:

[ ] I have followed the contribution guidelines and code style for this project.
[ ] I have added tests covering my contributions.
[ ] I have updated the documentation accordingly.
[ ] I have signed the commits, e.g. git commit -s -m "your commit message".
[ ] This PR is being made to staging branch AND NOT TO main branch.

Thanks @Kingston257 for your first contribution, and congrats!
Btw, I have changed the target branch to staging, which is our development branch.


JBPM-6203 - Remove view mode preference

Adding https://github.com/AppFormer/uberfire/pull/801 into master.

Jenkins please execute full downstream build.


Missing support for Win 10 Home x64 - Version 1809 (Build 10.0.17763.316)

I guess I'm not the only one who's having trouble with this on the Oct 2018 update.
Are there any news about fixes or workarounds?

Same for me, any chance to get RDP working again?

Duplicate of #645.


Tidy the repo to make it usable as an example

Set up R kernel for use with Jupyter
Use tidyverse as base
Remove unused files
Run install.r if it is present.

Nice!


Update to beta 5

Since there's really nothing to do, I've taken the opportunity to improve the documentation and code quality in general.

:+1:

:boat:


Removing conflicting plugin - dokka

Jitpack building failed due to conflict. Removing plugin.

Is it ok to just outright remove it? 🦖 no upgrades or anything else?

This plugin is not needed for the lib to function it is just to generate Javadoc (this was a fork from another lib).
I'd have to migrate this plugin to a different version as this one no longer has any support. Instead, it is easier to just remove it.


Optimize redundant if statement

Q
A

Is bugfix?
❌

New feature?
❌

Breaks BC?
❌

Tests pass?
✔

Merged. Thanks!


training results

Sorry for bothering again,
I notice there are 5 results in each training epoch, whose format is just like
train_accs: [0.9918857, 0.97852856, 0.9005857, 0.97854286, 0.97852856]
May I roughly know what's the difference of those results? I experimented to change the tf2, and some of the results would increase, so are they assoicated with the transformation format?
Thank you so much for your help.

That's the list of accuracies on the data for each of the 5 sub heads. If you set --num_sub_heads 1 there should be 1 result.
The data that produced that accuracy is the data in mapping_assignment_dataloader, i.e. the labelled part of the training data.

Thank you so much for your explanation.

Sorry for bothering again,
I use the '685' command and original script to train the classifer for the MNIST, and one thing I'm a little confused, which is  sometimes I can get the similar result with the 'training log file'. However, sometimes the result seems to be not increasing in one number for long time (epoch after epoch the number seems not grow too much).
ex.
pre-epoch: [0.8790857, 0.87932855, 0.8792286, 0.87934285, 0.8789857]
next:           [0.8793714, 0.87897146, 0.8791143, 0.8788143, 0.8786]
Sometimes (1-3) of the 5 sub-heads are outstanding than others, sometimes 5 sub-heads are normal. Therefore, if i wish to produce better performance model, should I try severial times to find out best?
Thank you for your support.

Depending on your needs, you could indeed try several times and then select the "best" sub-head as the one with the lowest loss (--select_sub_head_on_loss), or highest accuracy as you have been doing.
If you are doing a fully unsupervised experiment, choose best sub-head based on lowest loss (to avoid using labels for the sub-head selection). You could also use a script to do this after saving a model.

Thank you so much for your explanation.


Table layout ignores colW when colspans are specified.

If I have a 3 column table but the header row has a cell that spans two columns colW is ignored with the error:
"addTable: mismatch: (colW.length != data.length) Therefore, defaulting to evenly distributed col widths."
The simple fix is that rather than looking at the number of items in the row the code should be summing up the colspans of the items in the row.
Here's a jsFiddle example that demonstrates the problem. (I expect three columns, the first 2" wide and the other two 0.5" wide.)
let pptx = new PptxGenJS();
$('small').before('(pptxgenjs version: ' + pptx.version + ')');

// Simple Slide
window.doDemo = function do7cells() {
  let pptx = new PptxGenJS();
  let slide = pptx.addSlide();
  let cells = [];
  cells.push({
    text: 'Wide Column',
    options: {
      color: 000000,
      bold: true,
      align: 'center',
    }
  });
  cells.push({
    text: 'Spanning header',
    options: {
      color: 000000,
      bold: true,
      align: 'center',
      colspan: 2
    }
  });

  let rows = [];
  rows.push(cells);
  cells = [];

  cells.push({
    text: 'Row label (long)',
    options: {
      color: 000000,
    }
  });

  cells.push({
    text: '1',
    options: {
      color: 000000,
    }
  });

  cells.push({
    text: '2',
    options: {
      color: 000000,
    }
  });
  rows.push(cells);

  let tableOptions = {
    x: 0,
    y: 0,
    w: 3,
    h: 2,
    colW: [2.0, 0.5, 0.5]
  };

  slide.addTable(rows, tableOptions);

  pptx.writeFile();
}

And this is what I get:

BTW, I tried working around this by adding an extra, hopefully invisible, cell in the header row with a colspan of 0, but it was still shown.

What version are you using?

We're using 3.1.1 but the example above was built on your jsFiddle example which I believe is running 3.2.1.

Please try using the newest codebase (v3.3.0-beta) - i believe this issue has been resolved.
#651 #679

Is there any way to get this as an npm? Our build can't be easily changed to ingest PPTXGenJS any other way. Or is there a jsFiddle environment I could try?

Can confirm this issue no longer exists in the current build. My local version
/* PptxGenJS 3.3.0-beta @ 2020-06-11T04:13:39.290Z */
produces the table looking correct as expected.

@pandersen-uncharted - if you're unable to update the files under /dist in your current node_modules folder, then you'll have to wait for v3.3.0 to be released.


New version: vim.vim.nightly version 9.1.0296

Pull request has been created with WinGet Releaser v2 :rocket:
Microsoft Reviewers: Open in CodeFlow

Hi @chrisbra,
The package didn't pass a Defender or similar security scan. This might be a false positive and we can rescan tomorrow.
(Automated response - build 876.)

Automatic Validation ended with:

Installation failed with exit code -1978335187
2024-04-09 19:06:14.397 [FAIL] Installer failed security check. Url: https://github.com/vim/vim-win32-installer/releases/download/v9.1.0296/gvim_9.1.0296_x86.exe Result: 0x80004005

(Automated response - build 876.)

@wingetbot run


Transparent png's

Hi I'm using Ubuntu 22.04 and rustc 1.67.1, when I run the example code I get transparent png's. Am I missing something?

Wayland Desktop?

No gnome, the standard ubuntu desktop running on a I7 with an Nvidia GTX 1050 Ti.

@nashaofu I created a new VM (one which i haven't been messing with) and screenshot's works fine. :-) Please close issue, Thanks


Avoid double-encoding URI

pushState already calls encodeURI. It's not necessary to call it in onHashChange.
If currentState.url is already encoded, e.g. %3A, then it will be double encoded by encodeURI (once in onHashChange and once in pushState), and .replace(/%25/g, "%") will only be run once in pushState, yielding a URL of %253A.

Hi,
this fix should really be applied. It older browsers (HTML4) to push a newly encoded URL to history on every reload. The URL gets longer and longer.
This happens when the URL contain chars that need to be URL encoded. On enery reload all %-signs are encoded one more time.


Rename Date assertions isWithinXXX to hasXXXFieldEqualTo

I think that isWithinXXX assertions is not a great name (yes it was my idea ...), I come up with a clearer name (I hope), let's see that with an example:
Before:
assertThat(myBirthday).isWithinMinute(27);

Options 1:
assertThat(myBirthday).hasMinuteFieldEqualTo(27);

Options 2:
assertThat(myBirthday).hasMinute(27);

What's the status here?

looking for feedback/option ...

I would prefer assertThat(myBirthday).hasMinute(27);, but maybe assertThat(myBirthday).hasMinuteEqualTo(27); is more consistent with existing assertions?

ok, let's go for  assertThat(myBirthday).hasMinute(27); as it is shorter than the other options

Since this is an API change, how do i handle that in my PR?