You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@texera.apache.org by "yangzhang75 (via GitHub)" <gi...@apache.org> on 2026/07/02 05:12:32 UTC
[PR] fix(frontend): keep integer property fields editable by replacing the crashing Formly number parser [texera]
yangzhang75 opened a new pull request, #6058:
URL: https://github.com/apache/texera/pull/6058
<!--
Thanks for sending a pull request (PR)! Here are some tips for you:
1. If this is your first time, please read our contributor guidelines:
[Contributing to Texera](https://github.com/apache/texera/blob/main/CONTRIBUTING.md)
2. Ensure you have added or run the appropriate tests for your PR
3. If the PR is work in progress, mark it a draft on GitHub.
4. Please write your PR title to summarize what this PR proposes, we
are following Conventional Commits style for PR titles as well.
5. Be sure to keep the PR description updated to reflect all changes.
-->
### What changes were proposed in this PR?
<!--
Please clarify what changes you are proposing. The purpose of this section
is to outline the changes. Here are some tips for you:
1. If you propose a new API, clarify the use case for a new API.
2. If you fix a bug, you can clarify why it is a bug.
3. If it is a refactoring, clarify what has been changed.
3. It would be helpful to include a before-and-after comparison using
screenshots or GIFs.
4. Please consider writing useful notes for better and faster reviews.
-->
Fixes typed edits being ignored on integer/number operator property fields (reproduced
on the Limit operator): the field gets stuck and only the +/- steppers work.
Root cause: `@ngx-formly/core`'s json-schema integer/number parser reads
`document.querySelector('#' + field.id).validity.badInput`, assuming the id is on the
native `<input>`. ng-zorro's `nz-input-number` puts the id on its host element (which
has no `.validity`), so the parser throws `Cannot read properties of undefined
(reading 'badInput')` whenever the parsed value is null (an intermediate state while
typing). The typed value then never commits.
This replaces that parser, for numeric fields only, with a null-safe parser that does
no DOM access (`applySafeNumericParser` in `jsonSchemaMapIntercept`). The stepper path
was unaffected and keeps working.
### Any related issues, documentation, discussions?
<!--
Please use this section to link other resources if not mentioned already.
1. If this PR fixes an issue, please include `Fixes #1234`, `Resolves #1234`
or `Closes #1234`. If it is only related, simply mention the issue number.
2. If there is design documentation, please add the link.
3. If there is a discussion in the mailing list, please add the link.
-->
Closes #6054
### How was this PR tested?
<!--
If tests were added, say they were added here. Or simply mention that if the PR
is tested with existing test cases. Make sure to include/update test cases that
check the changes thoroughly including negative and positive cases if possible.
If it was tested in a way different from regular unit tests, please clarify how
you tested step by step, ideally copy and paste-able, so that other reviewers can
test and check, and descendants can verify in the future. If tests were not added,
please describe why they were not added and/or why it was difficult to add.
-->
- New unit tests for `parseNumericInput` (numeric/decimal/negative/whitespace/empty/
non-numeric/DOM-safety) and `applySafeNumericParser` (replaces the crash-prone parser,
null-safe on the clear-field case, leaves non-numeric fields untouched) — 12 tests.
- Existing `OperatorPropertyEditFrameComponent` spec still passes.
- Manually verified in the UI: integer fields (e.g. Limit) are editable by typing again
and the console `badInput` TypeError is gone.
### Was this PR authored or co-authored using generative AI tooling?
<!--
If generative AI tooling has been used in the process of authoring this PR,
please include the phrase: 'Generated-by: ' followed by the name of the tool
and its version. If no, write 'No'.
Please refer to the [ASF Generative Tooling Guidance](https://www.apache.org/legal/generative-tooling.html) for details.
-->
Generated-by: Claude Code (Claude Opus 4.8)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] fix(frontend): keep integer property fields editable by replacing the crashing Formly number parser [texera]
Posted by "Yicong-Huang (via GitHub)" <gi...@apache.org>.
Yicong-Huang commented on code in PR #6058:
URL: https://github.com/apache/texera/pull/6058#discussion_r3524028224
##########
frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/numeric-input-parser.util.ts:
##########
@@ -0,0 +1,64 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import { FormlyFieldConfig } from "@ngx-formly/core";
+
+/**
+ * Null-safe parser for numeric (integer/number) property fields.
+ *
+ * It replaces @ngx-formly/core's json-schema integer/number parser, which reads
+ * `document.querySelector('#' + field.id).validity.badInput`. That code assumes the
+ * field id is on the native `<input>`, but ng-zorro's `nz-input-number` puts the id
+ * on its host element (which has no `.validity`), so the parser throws
+ * "Cannot read properties of undefined (reading 'badInput')" and typed edits never
+ * commit. This version does no DOM access: it just converts the value to a number, or
+ * null when it is empty/undefined/not a number.
Review Comment:
it is often not a good idea to patch the dependency lib unless absolutely necessary. did we check if formly has this bug fixed in a newer version?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] fix(frontend): upgrade @ngx-formly to 7.1.0 to keep integer property fields editable [texera]
Posted by "yangzhang75 (via GitHub)" <gi...@apache.org>.
yangzhang75 closed pull request #6058: fix(frontend): upgrade @ngx-formly to 7.1.0 to keep integer property fields editable
URL: https://github.com/apache/texera/pull/6058
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] fix(frontend): keep integer property fields editable by replacing the crashing Formly number parser [texera]
Posted by "Yicong-Huang (via GitHub)" <gi...@apache.org>.
Yicong-Huang commented on code in PR #6058:
URL: https://github.com/apache/texera/pull/6058#discussion_r3538880033
##########
frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/numeric-input-parser.util.ts:
##########
@@ -0,0 +1,64 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import { FormlyFieldConfig } from "@ngx-formly/core";
+
+/**
+ * Null-safe parser for numeric (integer/number) property fields.
+ *
+ * It replaces @ngx-formly/core's json-schema integer/number parser, which reads
+ * `document.querySelector('#' + field.id).validity.badInput`. That code assumes the
+ * field id is on the native `<input>`, but ng-zorro's `nz-input-number` puts the id
+ * on its host element (which has no `.validity`), so the parser throws
+ * "Cannot read properties of undefined (reading 'badInput')" and typed edits never
+ * commit. This version does no DOM access: it just converts the value to a number, or
+ * null when it is empty/undefined/not a number.
Review Comment:
yeah that will be the default move
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] fix(frontend): keep integer property fields editable by replacing the crashing Formly number parser [texera]
Posted by "codecov-commenter (via GitHub)" <gi...@apache.org>.
codecov-commenter commented on PR #6058:
URL: https://github.com/apache/texera/pull/6058#issuecomment-4862444262
## [Codecov](https://app.codecov.io/gh/apache/texera/pull/6058?dropdown=coverage&src=pr&el=h1&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) Report
:white_check_mark: All modified and coverable lines are covered by tests.
:white_check_mark: Project coverage is 56.40%. Comparing base ([`878eb8a`](https://app.codecov.io/gh/apache/texera/commit/878eb8a38b720dfd1131fa6f04f863a813f2bb53?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)) to head ([`0595606`](https://app.codecov.io/gh/apache/texera/commit/0595606b777985017d56d49f2a0b5ec8265a4176?dropdown=coverage&el=desc&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache)).
<details><summary>Additional details and impacted files</summary>
```diff
@@ Coverage Diff @@
## main #6058 +/- ##
============================================
+ Coverage 56.37% 56.40% +0.02%
Complexity 2992 2992
============================================
Files 1129 1130 +1
Lines 43802 43816 +14
Branches 4743 4749 +6
============================================
+ Hits 24695 24714 +19
+ Misses 17658 17650 -8
- Partials 1449 1452 +3
```
| [Flag](https://app.codecov.io/gh/apache/texera/pull/6058/flags?src=pr&el=flags&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | Coverage Δ | | *Carryforward flag |
|---|---|---|---|
| [access-control-service](https://app.codecov.io/gh/apache/texera/pull/6058/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `70.00% <ø> (ø)` | | Carriedforward from [878eb8a](https://app.codecov.io/gh/apache/texera/commit/878eb8a38b720dfd1131fa6f04f863a813f2bb53?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [agent-service](https://app.codecov.io/gh/apache/texera/pull/6058/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `44.59% <ø> (ø)` | | Carriedforward from [878eb8a](https://app.codecov.io/gh/apache/texera/commit/878eb8a38b720dfd1131fa6f04f863a813f2bb53?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [amber](https://app.codecov.io/gh/apache/texera/pull/6058/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `57.37% <ø> (ø)` | | Carriedforward from [878eb8a](https://app.codecov.io/gh/apache/texera/commit/878eb8a38b720dfd1131fa6f04f863a813f2bb53?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [computing-unit-managing-service](https://app.codecov.io/gh/apache/texera/pull/6058/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `0.00% <ø> (ø)` | | Carriedforward from [878eb8a](https://app.codecov.io/gh/apache/texera/commit/878eb8a38b720dfd1131fa6f04f863a813f2bb53?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [config-service](https://app.codecov.io/gh/apache/texera/pull/6058/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `52.30% <ø> (ø)` | | Carriedforward from [878eb8a](https://app.codecov.io/gh/apache/texera/commit/878eb8a38b720dfd1131fa6f04f863a813f2bb53?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [file-service](https://app.codecov.io/gh/apache/texera/pull/6058/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `62.81% <ø> (ø)` | | Carriedforward from [878eb8a](https://app.codecov.io/gh/apache/texera/commit/878eb8a38b720dfd1131fa6f04f863a813f2bb53?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [frontend](https://app.codecov.io/gh/apache/texera/pull/6058/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `50.13% <100.00%> (+0.06%)` | :arrow_up: | |
| [notebook-migration-service](https://app.codecov.io/gh/apache/texera/pull/6058/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `78.57% <ø> (ø)` | | Carriedforward from [878eb8a](https://app.codecov.io/gh/apache/texera/commit/878eb8a38b720dfd1131fa6f04f863a813f2bb53?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [pyamber](https://app.codecov.io/gh/apache/texera/pull/6058/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `91.15% <ø> (ø)` | | Carriedforward from [878eb8a](https://app.codecov.io/gh/apache/texera/commit/878eb8a38b720dfd1131fa6f04f863a813f2bb53?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [python](https://app.codecov.io/gh/apache/texera/pull/6058/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `90.69% <ø> (ø)` | | Carriedforward from [878eb8a](https://app.codecov.io/gh/apache/texera/commit/878eb8a38b720dfd1131fa6f04f863a813f2bb53?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
| [workflow-compiling-service](https://app.codecov.io/gh/apache/texera/pull/6058/flags?src=pr&el=flag&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) | `55.14% <ø> (ø)` | | Carriedforward from [878eb8a](https://app.codecov.io/gh/apache/texera/commit/878eb8a38b720dfd1131fa6f04f863a813f2bb53?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) |
*This pull request uses carry forward flags. [Click here](https://docs.codecov.io/docs/carryforward-flags?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache) to find out more.
</details>
[:umbrella: View full report in Codecov by Harness](https://app.codecov.io/gh/apache/texera/pull/6058?dropdown=coverage&src=pr&el=continue&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
:loudspeaker: Have feedback on the report? [Share it here](https://about.codecov.io/codecov-pr-comment-feedback/?utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=apache).
<details><summary> :rocket: New features to boost your workflow: </summary>
- :package: [JS Bundle Analysis](https://docs.codecov.com/docs/javascript-bundle-analysis): Save yourself from yourself by tracking and limiting bundle sizes in JS merges.
</details>
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] fix(frontend): upgrade @ngx-formly to 7.1.0 to keep integer property fields editable [texera]
Posted by "yangzhang75 (via GitHub)" <gi...@apache.org>.
yangzhang75 commented on PR #6058:
URL: https://github.com/apache/texera/pull/6058#issuecomment-4962499943
Thanks for the review! I'm going to close this: turns out #6235 already bumped @ngx-formly to 7.1.0 on main, so this fix is already in.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] fix(frontend): keep integer property fields editable by replacing the crashing Formly number parser [texera]
Posted by "yangzhang75 (via GitHub)" <gi...@apache.org>.
yangzhang75 commented on code in PR #6058:
URL: https://github.com/apache/texera/pull/6058#discussion_r3538609832
##########
frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/numeric-input-parser.util.ts:
##########
@@ -0,0 +1,64 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import { FormlyFieldConfig } from "@ngx-formly/core";
+
+/**
+ * Null-safe parser for numeric (integer/number) property fields.
+ *
+ * It replaces @ngx-formly/core's json-schema integer/number parser, which reads
+ * `document.querySelector('#' + field.id).validity.badInput`. That code assumes the
+ * field id is on the native `<input>`, but ng-zorro's `nz-input-number` puts the id
+ * on its host element (which has no `.validity`), so the parser throws
+ * "Cannot read properties of undefined (reading 'badInput')" and typed edits never
+ * commit. This version does no DOM access: it just converts the value to a number, or
+ * null when it is empty/undefined/not a number.
Review Comment:
Confirmed it's fixed in 7.1.0, they added the `input.validity` guard our 6.3.12 lacks, and 7.1.0 still supports our Angular.
Do you want me to upgrade to 7.1.0 instead of this workaround?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] fix(frontend): upgrade @ngx-formly to 7.1.0 to keep integer property fields editable [texera]
Posted by "xuang7 (via GitHub)" <gi...@apache.org>.
xuang7 commented on PR #6058:
URL: https://github.com/apache/texera/pull/6058#issuecomment-4962396671
@rbelavadi is helping verify whether this issue also exists on the `release/v1.2` branch. Once we reproduce it there, I will merge the fix. Please also resolve the merge conflicts in this PR. Thanks! @yangzhang75
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] fix(frontend): keep integer property fields editable by replacing the crashing Formly number parser [texera]
Posted by "yangzhang75 (via GitHub)" <gi...@apache.org>.
yangzhang75 commented on code in PR #6058:
URL: https://github.com/apache/texera/pull/6058#discussion_r3554001345
##########
frontend/src/app/workspace/component/property-editor/operator-property-edit-frame/numeric-input-parser.util.ts:
##########
@@ -0,0 +1,64 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import { FormlyFieldConfig } from "@ngx-formly/core";
+
+/**
+ * Null-safe parser for numeric (integer/number) property fields.
+ *
+ * It replaces @ngx-formly/core's json-schema integer/number parser, which reads
+ * `document.querySelector('#' + field.id).validity.badInput`. That code assumes the
+ * field id is on the native `<input>`, but ng-zorro's `nz-input-number` puts the id
+ * on its host element (which has no `.validity`), so the parser throws
+ * "Cannot read properties of undefined (reading 'badInput')" and typed edits never
+ * commit. This version does no DOM access: it just converts the value to a number, or
+ * null when it is empty/undefined/not a number.
Review Comment:
Hi, I have upgrade to 7.1.0.
Verified locally: the integer fields are editable again and the crash is gone
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] fix(frontend): keep integer property fields editable by replacing the crashing Formly number parser [texera]
Posted by "github-actions[bot] (via GitHub)" <gi...@apache.org>.
github-actions[bot] commented on PR #6058:
URL: https://github.com/apache/texera/pull/6058#issuecomment-4862416157
<!-- texera-reviewer-suggestion -->
### Automated Reviewer Suggestions
Based on the `git blame` history of the changed files, we recommend the following reviewers:
- **Contributors with relevant context:** `@SarahAsad23`
You can notify them by mentioning `@SarahAsad23` in a comment.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: notifications-unsubscribe@texera.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org