[SPARK-34365][AVRO] Add support for positional Catalyst-to-Avro schema matching

What changes were proposed in this pull request?
Provide the (configurable) ability to perform Avro-to-Catalyst schema field matching using the position of the fields instead of their names. A new option is added for the Avro datasource, positionalFieldMatching, which instructs AvroSerializer/AvroDeserializer to perform positional field matching instead of matching by name.
Why are the changes needed?
This by-name matching is somewhat recent; prior to PR #24635, at least on the write path, schemas were matched by positionally ("structural" comparison). While by-name is better behavior as a default, it will be better to make this configurable by a user. Even at the time that PR #24635 was handled, there was interest in making this behavior configurable, but it appears it went unaddressed.
There is precedence for configurability of this behavior as seen in PR #29737, which added this support for ORC. Besides this precedence, the behavior of Hive is to perform matching positionally (ref), so this is behavior that Hadoop/Hive ecosystem users are familiar with.
Does this PR introduce any user-facing change?
Yes, a new option is provided for the Avro datasource, positionalFieldMatching, which provides compatibility with Hive and pre-3.0.0 Spark behavior.
How was this patch tested?
New unit tests are added within AvroSuite, AvroSchemaHelperSuite, and AvroSerdeSuite; and most of the existing tests within AvroSerdeSuite are adapted to perform the same test using by-name and positional matching to ensure feature parity.

One area I am particularly open to feedback on is using a datasource option vs. a SQL config. Internally we have been using an option for a number of years and have found it useful for being able to control the behavior on a per-schema basis, but PR #29737 creates some precedence for a SQL config.

cc folks who have worked on either #29737 or #24635: @cloud-fan @dongjoon-hyun @dbtsai @viirya @gatorsmile @peter-toth

Test build #134936 has started for PR 31490 at commit 7e687cb.

Test build #134936 has finished for PR 31490 at commit 7e687cb.

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

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/39519/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/39519/

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

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

Rebase on top of recent changes in master.
@MaxGekk or @cloud-fan, I see you have some changes in this area recently, are either of you interested in taking a look?

Test build #136478 has started for PR 31490 at commit 5074a2a.

Test build #136478 has finished for PR 31490 at commit 5074a2a.

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

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

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/41062/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/41062/

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

@mridulm do you have any interest in helping to review this?

cc @gengliangwang too

Rebased on top of master to resolve conflicts.
Gentle ping to @cloud-fan @gengliangwang if you're interested in helping to review.

Test build #138942 has started for PR 31490 at commit 1622032.

Test build #138942 has finished for PR 31490 at commit 1622032.

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

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/43462/

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

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/43462/

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

Friendly ping to @mridulm @cloud-fan @gengliangwang for any help with reviews.

@xkrogen Do you mind holding this one until https://github.com/apache/spark/pull/32969 is merged?  I believe there will be conflicts.

@gengliangwang thanks for looking! Yes I'd be happy to wait for #32969 as I think that is higher priority and looks close to merging.

@xkrogen https://github.com/apache/spark/pull/32969 is merged. You can resolve the conflict and continue the work now. Thanks for the work!

Test build #140227 has started for PR 31490 at commit a83c8c7.

Just pushed up a new version which is pretty much a complete re-implementation on top of #32969.
This still consolidates more of the field matching behavior between AvroSerializer and AvroDeserializer, as in the original PR, but it leverages the nature of AvroSchemaHelper to serve the results to the caller in what I think is a more clean way. Instead of passing back a Seq[(Option, Option)] which the caller then pattern-matches on to handle the various cases, the AvroSchemaHelper performs all of the matching up front and then provides three methods to access all of the fields matching various conditions (present in both schemas, only Avro, or only Catalyst). I think this makes the logic in the callers more simple and clear.
I plan to also update benchmarks tomorrow to ensure that there is no regression on top of #32969.

Test build #140227 has finished for PR 31490 at commit a83c8c7.

This patch fails Scala style tests.
This patch merges cleanly.
This patch adds the following public classes (experimental):
  class AvroSchemaHelper(

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

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/44755/

Kubernetes integration test status failure
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/44755/

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

Test build #140285 has started for PR 31490 at commit 79f7b96.

Pushed up a style fix. Just remembered that we added the ability to run benchmarks via GitHub Actions, trying that out now.

Test build #140285 has finished for PR 31490 at commit 79f7b96.

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

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

Kubernetes integration test unable to build dist.
exiting with code: 1
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/44817/

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

I ran all 4 of the Avro benchmarks (read/write on JDK 8/11) against the current diff. I noticed that the JDK11 benchmarks weren't updated when #32969 went in, and also, those were generated using different hardware since they didn't use GitHub Actions. For this reason, I also generated all of the benchmark output files using GitHub Actions against the current master branch, applied those, and then applied the benchmarks for this branch on top of those. You can view the diff in this commit: https://github.com/apache/spark/pull/31490/commits/a0b4ecd336b63b2bbad3ff80a30249cba590f053
(numbers look essentially the same, well within the variance I think we expect)

Test build #140349 has started for PR 31490 at commit a0b4ecd.

Test build #140349 has finished for PR 31490 at commit a0b4ecd.

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

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/44880/

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

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

@xkrogen Thanks for the work. Some high-level suggestions:

we should document the new option in sql-data-source-avro.md
We don't need to update the benchmark results in the PR.
Let's have another PR for the error message improvement of incompatible schemas with test cases.

Thanks for the input @gengliangwang !

Done, thanks for the pointer!
Reverted
Sure, I have reverted some of the changes to keep this PR more narrow in scope to just adding the support for positional matching. Created SPARK-35918 to track this follow-up.

Test build #140391 has started for PR 31490 at commit 63bed24.

Test build #140391 has finished for PR 31490 at commit 63bed24.

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

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

Test build #140398 has started for PR 31490 at commit c7eea8a.

Test build #140398 has finished for PR 31490 at commit c7eea8a.

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

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

Kubernetes integration test starting
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/44915/

Kubernetes integration test status success
URL: https://amplab.cs.berkeley.edu/jenkins/job/SparkPullRequestBuilder-K8s/44915/

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

Thanks, merging to master

Thanks @gengliangwang ! Your feedback was much appreciated.
Thanks also @mridulm for the early review.


Fine-tune CI Workflows in PR

1. What this PR does / why we need it:
The execution time of the jobs included in the CI was too long. We had to wait longer to receive results due to unnecessary tests.

Build and Integration Test: 8 mins
Benchmark: 5 mins
Sharding Test: 3 mins

To prevent unnecessary CI tests from running, each CI test now only runs when there are changes related to the corresponding code.

Now, you can check the CI results faster because only the relevant tests for the changed code are executed.
You can easily verify whether a test was executed in the summary. (Refer to the image below)

Green check: Job executed
Red X: Job failed
Gray circle: Test did not run because it wasn’t the target package

Target packages:

build: all (except those ignored by paths-ignore)
benchmark: 'pkg/', 'server/packs/'
sharding test: 'server/backend/database/**'

2. Which issue(s) this PR fixes
Fine-tune CI Workflows in PR fixes #954

3. Special notes for your reviewer
Please check the target packages for each CI job.
Although I tried to classify them on my own, there are a few parts that feel ambiguous.

3.1 Build test target
There’s no specific target in the CI yml file, but I added yorkie/design/** to paths-ignore.
If there was a particular reason for not including the design package in the related issue #873, please let me know!
As a result, changes to the following targets will be ignored. (No CI tests will run)
If there are any other targets that should be added, please let me know.
  pull_request:
    branches: [ main ]
    paths-ignore:
      - 'api/docs/**'
      - 'build/charts/**'
      - 'design/**'
      - '**/*.md'
      - '**/*.txt'
      - '**/.gitignore'

Additionally, a job has been added to check the packages affected by changes.

jobs:
  ci-target-check:
    runs-on: ubuntu-latest

    outputs:
      build: ${{ steps.ci-target-check.outputs.build }}
      bench: ${{ steps.ci-target-check.outputs.bench }}
      sharding-test: ${{ steps.ci-target-check.outputs.sharding-test }}

    steps:
    - name: CI target check by path
      uses: dorny/paths-filter@v3
      id: ci-target-check
      with:
        filters: |
          build: '**'
          bench:
            - 'pkg/**'
            - 'server/packs/**'
          sharding-test:
            - 'server/backend/database/**'

And each job checks the flag values as follows and executes the job if the value is true.
build:
    needs: ci-target-check
    if: ${{ needs.ci-target-check.outputs.build == 'true' }}

bench:
    needs: ci-target-check
    if: ${{ needs.ci-target-check.outputs.bench == 'true' }}

sharding_test:
    needs: ci-target-check
    if: ${{ needs.ci-target-check.outputs.sharding-test == 'true' }}

3.2 Bench test target
By default, all packages under yorkie/pkg are included. I marked these with O in the diagram below.
The parts that felt ambiguous are marked with ? in the diagram, and I’ve left additional questions.

3.2.1 (Question) Packages that need confirmation
Should the following packages be included or excluded in the benchmark targets?

yorkie/client package → Since it mainly serves as a layer for making calls like yorkie/api, I want to exclude it. (I have excluded it for now.)
yorkie/server/packs package → This package defines functions for pushing or pulling changes. I believe only server/packs within the server package should be included in the bench target. Is this correct? (I have included it for now.)

3.2.2 Packages excluded from the bench test target

yorkie/api → Excluded from the bench target since it only makes API calls
yorkie/cmd, yorkie/internal, yorkie/design → Excluded from the bench target
yorkie/server (excluding the yorkie/server/packs package)

3.3 Shard test target

yorkie/server/backend/database

3.4 Test Result
I tested to ensure everything works correctly.
3.4.1 Build test
Only the build will be executed when packages unrelated to CRDT and shard-test are modified.
→ Github Action Result: https://github.com/yorkie-team/yorkie/actions/runs/10387699150

3.4.2 Bench test
After modifying the packs.go file, both the build test and benchmark were executed out of the three jobs.
(The build failure was due to adding a TODO comment for testing purposes)
→ Github Action Result: https://github.com/yorkie-team/yorkie/actions/runs/10387811024

3.4.3 Sharding-test
After modifying the server/backend/database/memory/database.go file, the sharding test was additionally executed.
(The build failure was due to adding a TODO comment for testing purposes)
→ Github Action Result: https://github.com/yorkie-team/yorkie/actions/runs/10387851119

Summary by CodeRabbit

New Features

Introduced a new job in the CI workflow for target checks, optimizing the build process by conditionally executing jobs based on relevant file changes.

Improvements

Streamlined job steps for clarity and efficiency, ensuring that only necessary builds and tests run, enhancing overall CI performance.

@binary-ho If you are still working on the PR and it is not ready for the review, I recommend to create PR in draft mode.

As discussed, I have organized the dependencies for the bench tests.
As a result, the benchmark tests will be triggered by changes in the following packages.
Could you please check this?
  bench:
    - 'admin/**'
    - 'api/converter/**'
    - 'api/types/**'
    - 'client/**'
    - 'pkg/document/**'
    - 'pkg/locker/**'
    - 'server/**'
    - 'test/helper/**'

1. Categorized by Dependency Package
1.1 Document

"pkg/document"

"pkg/document/json"
"pkg/document/presence"
"pkg/document/change"
"pkg/document/key"
"pkg/document/time"
"pkg/document/crdt"

"pkg/locker"

1.2 Server

"server"

"server/backend"
"server/backend/database"
"server/backend/sync"
"server/documents"
"server/logging"
"server/packs"
"server/profiling"
"server/profiling/prometheus"
"server/clients"
"server/projects"
"server/rpc"

1.3 API

"api/types"
"api/converter"

1.4 Client

"client"

1.5 Test

"test/helper"

2. Dependencies Organized by Test
(For reference)

document_bench_test

"pkg/document"

grpc_bench_test

"admin"
"api/types"
"client"
"pkg/document"
"pkg/document/json"
"pkg/document/presence"
"server"
"server/backend/database"
"server/logging"
"test/helper"

locker_bench_test

"pkg/locker"

push_pull_bench_test

"api/converter"
"api/types"
"pkg/document"
"pkg/document/change"
"pkg/document/json"
"pkg/document/key"
"pkg/document/presence"
"pkg/document/time"
"server/backend"
"server/backend/database"
"server/documents"
"server/packs"
"server/profiling/prometheus"
"test/helper"

sync_bench_test

"server/backend/sync"

text_editing_bench_test

"api/types"
"client"
"server/backend"
"server/backend/database"
"server/clients"
"server/profiling"
"server/profiling/prometheus"
"server/projects"
"server/rpc"

tree_editing_bench_test

"api/converter"
"pkg/document/crdt"
"pkg/document/json"
"test/helper"

@krapie , @binary-ho
For some reason the CI was broken in main. Now I've rolled back the main branch to the previous commit.
https://github.com/yorkie-team/yorkie/actions/runs/10402716854

The Reason build failed is that the checkout step was missing in the ci-target-check job.

The following step should be added:
        - name: Check out code
	uses: actions/checkout@v4

The ci-target-check job should be updated as follows:
jobs:
  ci-target-check:

	  ...

    steps:
		- name: Check out code
			uses: actions/checkout@v4

    - name: CI target check by path
      uses: dorny/paths-filter@v3
      id: ci-target-check
      with:
        filters: |
          build: '**'
          bench:
            - 'pkg/**'
            - 'server/**'
            - 'client/**'
            - 'admin/**'
            - 'api/converter/**'

          sharding-test:
            - 'server/backend/database/**'

The reason why the PR build succeeded was that “dorny/paths-filter@v3” did not require a checkout in the PR.

I misunderstood this part and removed it entirely.
This issue was found by @devleejb. Thank you, devleejb
and @krapie has confirmed the issue and will take action to address it.

@binary-ho I will merge the following PR: https://github.com/yorkie-team/yorkie/pull/965 soon.
Therefore, you don't have to take further actions :)


Having multiple targets share the same Source folder but excluding some files.

As an example let's says that I have two targets A and B that share the same source files, with some minor exceptions.
I want to be able to exclude some files that would be only for A in my target B, and vice-versa.
Here is an example of my folder structure:
Root Folder
 |
 |-- Source
    |
    | - Screen1
       |
       | - View
           | - ViewState.swift // common file
           | - View_MMA.swift // file specific to A
           | - View_MMB.swift // file specific to B

In the XcodeGen settings file I define two targets, setting Source as the source folder and exclude settings for View_MMA.swift and View_MMB.swift:
targets:
  MMAPresentation:
    sources:
      - Source
      - path: Source
        excludes:
          - "**/*_MM[!A].*"

  MMBPresentation:
    sources:
      - Source
      - path: Source
        excludes:
          - "**/*_MM[!B].*"

I then run xcodegen and open the project.
All the files in the project explorer (expected) but when I check the target membership, View_MMA.swift and View_MMB.swift are members of both A and B while I would expect View_MMA.swift to be a member of A only and View_MMB.swift to be a member of B only.

I did check that my glob expression does match using globster.xyz
I did try to exclude one file with it's direct path in the exclude setting, but it was still a member of the targets

Would anyone know what am I doing wrong here?
Maybe the way I'm trying to use sources/excludes itself isn't right? In that case would there be any way to do what I'm trying to do with XcodeGen?
Thank you for your help

How about simple as
targets:
  MMAPresentation:
    sources:
      - Source
      - path: Source
        excludes:
          - **/*_MMB.*

  MMBPresentation:
    sources:
      - Source
      - path: Source
        excludes:
          - "**/*_MMA.*"

Thanks for your answer
I tried but the files target membership is still set to both targets when I check in Xcode.

@YColdefy It's the same if you add EXCLUDED_SOURCE_FILE_NAMES in your xcconfig file. In Build Settings all exclusions are setup correctly but if you select any file you still see double target membership. But even with this double membership somehow Xcode seems to be respecting your exclusion settings. I created two identical files with identical protocols and classes that conform to them and did some testing. Didn't get any redeclaration errors and was able to build one target when the other class had some syntax errors. Xcode did omit this broken implementation for one target but did threw an error when I changed targets.
I'm not sure what effect it will have in the long run cause my framework is a work in progress but building targets seems to be working fine and proper files are taken into account.
But I would definitely like to have this sorted out cause it seems like it's working by accident.

@mateuszfidos thank you for you comment. In my case I do get the redeclaration errors and am unable to build so that's not working for me :/

@YColdefy try defining EXCLUDED_SOURCE_FILE_NAMES in xcconfig files. You have to do it per platform but you have ${platform} to help you. Here's an example:
    configFiles:
      Debug: path/to/config/${platform}/Debug.xcconfig
      Release: path/to/config/${platform}/Release.xcconfig

and per xcconfig something like this:
MACOS_FILES = */*/macOS/* */macOS/* */macOS/*/*
EXCLUDED_SOURCE_FILE_NAMES = $(MACOS_FILES)

^ is for iOS and formacOS it's the other way around, you know the drill

Thanks
In my case I get redeclaration build errors so It would seem that something is different from your setup.

@YColdefy I faces the same problem. Found out that we need to remove the - Source from Sources:. So it should look like this:
targets:
  MMAPresentation:
    sources:
      - path: Source
        excludes:
          - "**/*_MM[!A].*"

  MMBPresentation:
    sources:
      - path: Source
        excludes:
          - "**/*_MM[!B].*"

I know this is an old thread, but maybe it helps someone.


Few changes to CONTRIBUTING and README

Hello,
Here are a few changes that I believe would improve slightly the DX:

make CONTRIBUTING.md a real page instead of a redirection to a section of the README. Bring back things from the README that really belong in the dev doc.
make the links to packages in README relative to the repo (previous links were all 404, too). It makes the links work in forks.

I don't know what to do with this auto changelog thing, sorry. But if there is a special git command to avoid generating it, we'll want to add it to the freshly improved CONTRIBUTING documentation ;) IMHO it should only run before making a release, no?

Hi @NicolasCARPi sorry I didn't see this one till now. I've updated the PR template to include an @tnrich tag so I'll hopefully be notified of incoming PRs sooner in the future. Thanks for your changes, they look good. I'll poke around to see if I can get the changelog to only be run on version bumps.
Cheers!

Hello,
Thanks for merging. Why don't you use the "Watch" function of github? Seems getting notifications for all activity on this repo make sense, no?

@NicolasCARPi I wasn't sure where that toggle lived, thanks! I've updated my watch status to All Activity.
Cheers!


Game 2: Improve display of text

The display of the text should be improved in those ways:

[ ] The wooden board size should match the size of the symptoms text
[ ] The text at the end of the game should have a colored rectangle behind it to make it more readable. (That could be for example a wooden board or slightly transparent white square like for the rules.)
[ ] The name of the STI's should be centered with respect to the ball it is written on

In order the be able to adapt the size of the board to the text, a separate image needs to be created for the wooden board.

Other things to do:

[ ] The text at the end of the game should not be displayed before final ball has finished it's move.
 (This requires another separate image for the basket net. @guillaumereg )
[ ] The ball should fall behind the other balls when going down.


test-branch/execute-job/wrong-comment-on-pr/1bf0c59e-e579-4380-b229-786f2d015ced

PR for testing bfd5ffd7bb63abe62b81f01c8379307a416ece9d

comment 1


OOP school library: preserve data

In this PR:

We created a new branch called data_storage
We implemented the data storage function using json file
I ran linter validation check
We created a pull request

Thanks @KayLemba 🤗


Wonder videos appear in multiplayer games and get players stuck

Describe the bug
With CQUI wonder videos appear in multiplayer games (independent auf the switch in CQUI settings) and the player completing the wonder gets stuck in the wonder video screen. He cannot exit the wonder video screen at all.
To Reproduce
Steps to reproduce the behavior:

Start a multiplayer game with CQUI enabled.
Build any wonder.
The wonder video will play after completion and you will be stuck in the video screen.

Expected behavior

The setting in CQUI settings regarding wonder videos is respected, i.e. no video is shown when turned off.
If videos are enabled, the wonder video screen can be exited as usual.

General informations

OS: Windows 10
Latest version of the game and mod
All
We tested a multiplayer game with the other mods we used and did not run into the issue, so I assume the problem is specific to CQUI.

Can confirm, but I am also playing with ToggoStar, I might be biased.

@ToggoStar @m-from-space - I'll look into this now.  I don't have any people handy to play a multiplayer game, but hopefully I can see through the code what is up

Indeed - figured out how to reproduce this issue without needing to be in multiplayer.  Fixing now and will create a PR and upload to the workshop once completed

@ToggoStar  , @m-from-space  - can you confirm this is fixed?

We didn't have a chance to test yet, but probably will do so this weekend. I'll keep you updated! :)

Yes, the issue is fixed - thank you!


Display versions of medrxiv articles on sciety article pages

Example of medrxiv article reviewed by eLife, with multiple versions: https://www.medrxiv.org/content/10.1101/2<IP_ADDRESS>84051v2.full

[x] show version error with correct server
[x] show versions for medrxiv
[x] ~check that abstract for http://localhost:8080/articles/10.1101/2<IP_ADDRESS>10593 works (mathML?)~ https://elifesciences.slack.com/archives/C011EQLKP51/p1611741689024900

Refactoring

[x] create a type for 'biorxiv' | 'medrxiv' somewhere
[x] medrxiv unit tests for get-biorxiv-article-version-events
[x] rename GetBiorxivArticleVersionEvents type and implementation
[x] improve getServer, pipe?
~should we move the avatars for biorxiv and medrxiv to static files?~
~begin using domain terminology "articleId" instead of "doi" for variable names~
[ ] extract medRxiv equivalent of RenderArticleVersionErrorFeedItem
[ ] remove promises in handle-article-version-errors
[ ] find out why FetchExternalArticle didn't need the server field
[ ] make sure HtmlFragment is used in render-page rather than strings
[ ] remove Result from render-page

Technical debt

[ ] make the lint fix the uniformity on ; vs. , in type definitions
[ ] make parse-crossref-article use Options, e.g. getElement.

Using http://localhost:8080/articles/10.1101/2<IP_ADDRESS>7922 to temporarily test the error of missing versions on a biorxiv article.

Using http://localhost:8080/articles/10.1101/2<IP_ADDRESS>7922 to temporarily test the error of missing versions on a biorxiv article.

curl -v https://api.crossref.org/works/10.1101/2<IP_ADDRESS>49880/transform -H "Accept: application/vnd.crossref.unixref+xml"

curl -v https://api.crossref.org/works/10.1101/2<IP_ADDRESS>49880/transform -H "Accept: application/vnd.crossref.unixref+xml"

My Firefox is blocking the hot-linked avatar images from Twitter in the article feed:

(taken from https://staging.sciety.org/articles/10.1101/19003376 on 2021-01-27 at 16.25.34)
This doesn't seem to be a problem on the profile page, where avatars loaded in the same way are displayed.
Looks like an example of opaque / arcane browser heuristics.

My Firefox is blocking the hot-linked avatar images from Twitter in the article feed:

(taken from https://staging.sciety.org/articles/10.1101/19003376 on 2021-01-27 at 16.25.34)
This doesn't seem to be a problem on the profile page, where avatars loaded in the same way are displayed.
Looks like an example of opaque / arcane browser heuristics.


add checkStyle

Add the code style check, and installation instructions.

@shulieTech review the code，pls，thanks.


Why keep both .h and .hpp headers at the same time?

Asking out of curiosity, why are we keeping both .h and .hpp header files at the same time?

The headers were renamed in #70 with the intent do deprecate the .h headers and introduce a C API for ROS 2 in the future.
#115 removes the deprecation warning based on feedback received in https://github.com/ros/pluginlib/pull/70#issuecomment-379435585
When N-turtle comes around we'll have to determine if the warning should be reintroduced.
If this answers your question feel free to close the issue.


feat(cli): Build the CLI for Windows ARM64, closes #7015 (#7098)

Port of https://github.com/tauri-apps/tauri/pull/7098
Opening as a draft because i'm not sure how to best combine the feature flags right now...

whoops, i actually meant to close/update this PR since i opened it before https://github.com/tauri-apps/tauri/pull/7107 😅

looks correct to me now. i let you decide if it makes sense to integrate #7017, which splits up the native-tls and native-tls-vendored flags.
Though i still hope that ring updates before v2 will be stable (unlikely but one can hope) so we can simplify that again 😩

I think you linked the wrong PR. Anyway I just want to get this working right now, these feature flags are a mess.

yeah, swapped the 1 and 0, the one in the first message was correct https://github.com/tauri-apps/tauri/pull/7107

Isn't native-tls automatically enabled when you enable native-tls-vendored? I think it should, that's what all libraries do.

Nope, that's not what all libraries do, at least not ureq (and iirc atto didn't either), which is why i changed it in dev to behave the same.

We should work on removing attohttpc from dev anyway like you suggested, I think it would benefit the codebase overall.

Yes, targeting arm to make sure it builds, and targeting x64 with the same flags to make sure i don't get any runtime errors (i have no arm machine to test)

I like it this way where you don't need to specify native-tls,native-tls-vendored and the -vendored implies the native-tls feature. I can't really compile for arm64 on my VM (stupid Ring?) but it should work the same as the dev stuff you pushed.

Ahh I see. Gonna see if I can find it.

@FabianLars now I think it's ready. I also changed the CI to test arm64 Windows builds since it is quite fragile. Let me know if you see any mistakes.

Yeah, looks good to me 👍


Sealed class

Exporting sealed class with KotlinJs make the code executable but not compliant with strict typescript rules. (The generated class is not abstract but with abstract fields for example, creating issues on typescript.)
https://youtrack.jetbrains.com/issue/KT-39193
We could generate an abstract class instead: the sealed is important for Kotlin side, but it has no class hierarchy limitation on the JS/TS word, so it's probably nothing more than an abstract class for the facade.

Released in 0.4.2


Release Schedule

Hi.  Since it seems releases aren't managed via CI (at least from the looks of this repo) what is the release schedule for the node client to npm?

Hey timothy whenever there are changes and someone gets around to it at the moment. I have a tentative plan to move that to a CI at some point this year but it isn't a priority as most of these packages are touched quite infrequently

@ProbablePrime I've (since) tried putting a few npm packages in CI. Unfortunately npm doesn't have a solution for publishing in accounts that require 2FA in CI, so I've been doing all my packages manually.

Big oof, i'll take a look at some items and see what we can do. Assigning to me


Windows 10

Trying to access config brings me
script c:\Users\jinyo.hyper.js
line: 5
char: 1
error: 'module' is undefined
code: 800a1391
source: Microsoft JScript runtime error
-
Hyper 1.4.6
Electron 1.7.6
win32 x64 10.0.15063

Hi there! I think this is a duplicate of #1996, so I'm going to close this in preference of the original issue. Thanks for confirming the report though!

AWESOME THANK YOU TIMOTHY
On Sat, Sep 16, 2017 at 5:43 PM, Timothy<EMAIL_ADDRESS>wrote:

Closed #2222 https://github.com/zeit/hyper/issues/2222.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/zeit/hyper/issues/2222#event-1252300832, or mute the
thread
https://github.com/notifications/unsubscribe-auth/AXK3EaJFoGOJA4JHwz1vImKn-j_2Hjv4ks5sjE8UgaJpZM4PZ-HP
.


Sound problem

[Youtube-Ad-blocker-Reminder-Remover.user.js]
5.0
video audio sounds more muffled than usual
I couldn't see the part in the code that would create noise, but it doesn't happen with add blocker.
Desktop (please complete the following information):

Macos Sonoma
Chrome
Version 126.0.6478.62 (Official Build) (arm64)

Additional context
here is my email:
<EMAIL_ADDRESS>

I had the same issue; reloading YouTube solved it. However, there is still laggy for about 1-2 seconds.


Tests don't pass consistently

Would be nice if we had a strategy here, perhaps:

Tests that don't pass consistently get flagged as such (i.e. pending), perhaps on a VM by VM basis (i.e. JRuby)
Perhaps use e.g. rspec-retry?

It would be nice if there were no transient test failures

What are the failures? I think it depends on what they are mostly since that can affect whether it's easy to fix or not.

https://travis-ci.org/httprb/http.rb/builds
They're all on JRuby, e.g.:
https://travis-ci.org/httprb/http.rb/jobs/62103206
  1) HTTP::Client working with SSL timeouts with a per operation timeout read of 0 times out
     Failure/Error: expect { response }.to raise_error(HTTP::TimeoutError, /Read/i)
       expected HTTP::TimeoutError with message matching /Read/i but nothing was raised
     Shared Example Group: "HTTP handling" called from ./spec/lib/http/client_spec.rb:219
     # /home/travis/.rvm/gems/jruby-1.7.19-d19/gems/rspec-expectations-3.2.1/lib/rspec/expectations/fail_with.rb:29:in `fail_with'
     # /home/travis/.rvm/gems/jruby-1.7.19-d19/gems/rspec-expectations-3.2.1/lib/rspec/expectations/handler.rb:40:in `handle_failure'
     # /home/travis/.rvm/gems/jruby-1.7.19-d19/gems/rspec-expectations-3.2.1/lib/rspec/expectations/handler.rb:50:in `handle_matcher'
     # /home/travis/.rvm/gems/jruby-1.7.19-d19/gems/rspec-expectations-3.2.1/lib/rspec/expectations/handler.rb:27:in `with_matcher'
     # /home/travis/.rvm/gems/jruby-1.7.19-d19/gems/rspec-expectations-3.2.1/lib/rspec/expectations/handler.rb:48:in `handle_matcher'
     # /home/travis/.rvm/gems/jruby-1.7.19-d19/gems/rspec-expectations-3.2.1/lib/rspec/expectations/expectation_target.rb:54:in `to'
     # /home/travis/.rvm/gems/jruby-1.7.19-d19/gems/rspec-expectations-3.2.1/lib/rspec/expectations/expectation_target.rb:87:in `to'
     # ./spec/support/http_handling_shared.rb:53:in `(root)'

https://travis-ci.org/httprb/http.rb/jobs/63726652
  1) HTTP::Client working with SSL connection reuse when disabled opens new sockets
     Failure/Error: client.get("#{server.endpoint}/socket/2").body.to_s
     IOError:
       problem making HTTP request: End of file reached
     Shared Example Group: "HTTP handling" called from ./spec/lib/http/client_spec.rb:219
     # ./lib/http/connection.rb:99:in `read_headers!'
     # ./lib/http/client.rb:77:in `make_request'

  2) HTTP::Client working with SSL connection reuse when enabled on a mixed state re-opens the connection
     Failure/Error: second_socket_id = client.get("#{server.endpoint}/socket/2").body.to_s
     IOError:
       problem making HTTP request: End of file reached
     Shared Example Group: "HTTP handling" called from ./spec/lib/http/client_spec.rb:219
     # ./lib/http/connection.rb:99:in `read_headers!'
     # ./lib/http/client.rb:77:in `make_request'

https://travis-ci.org/httprb/http.rb/jobs/63730552
  1) HTTP::Client working with SSL connection reuse when enabled with a socket issue transparently reopens
     Failure/Error: second_socket_id = client.get("#{server.endpoint}/socket").body.to_s
     IOError:
       problem making HTTP request: End of file reached
     Shared Example Group: "HTTP handling" called from ./spec/lib/http/client_spec.rb:219
     # ./lib/http/connection.rb:99:in `read_headers!'
     # ./lib/http/client.rb:77:in `make_request'

This was "fixed" in #233, but the root cause is probably worth revisiting.


Regenerate Google.Cloud.TextToSpeech.V1

This PR was generated using Autosynth. :rainbow:
Here's the log from Synthtool:
synthtool > Executing /tmpfs/src/git/autosynth/working_repo/apis/Google.Cloud.TextToSpeech.V1/synth.py.
Cloning into 'gapic-generator-csharp'...
Submodule 'api-common-protos' (https://github.com/googleapis/api-common-protos.git) registered for path 'api-common-protos'
Submodule 'protobuf' (https://github.com/protocolbuffers/protobuf.git) registered for path 'protobuf'
Cloning into '/tmpfs/src/git/autosynth/working_repo/gapic-generator-csharp/api-common-protos'...
Cloning into '/tmpfs/src/git/autosynth/working_repo/gapic-generator-csharp/protobuf'...
Submodule path 'api-common-protos': checked out '4c0a203e3658ae0e56d47c817c2c5904116c0ae0'
Submodule path 'protobuf': checked out '815ff7e1fb2d417d5aebcbf5fc46e626b18dc834'
Submodule 'third_party/benchmark' (https://github.com/google/benchmark.git) registered for path 'protobuf/third_party/benchmark'
Submodule 'third_party/googletest' (https://github.com/google/googletest.git) registered for path 'protobuf/third_party/googletest'
Cloning into '/tmpfs/src/git/autosynth/working_repo/gapic-generator-csharp/protobuf/third_party/benchmark'...
Cloning into '/tmpfs/src/git/autosynth/working_repo/gapic-generator-csharp/protobuf/third_party/googletest'...
Submodule path 'protobuf/third_party/benchmark': checked out '5b7683f49e1e9223cf9927b24f6fd3d6bd82e3f8'
Submodule path 'protobuf/third_party/googletest': checked out '5ec7f0c4a113e2f18ac2c6cc7df51ad6afc24081'
Microsoft (R) Build Engine version 15.9.20+g88f5fadfbe for .NET Core
Copyright (C) Microsoft Corporation. All rights reserved.

  Restoring packages for /tmpfs/src/git/autosynth/working_repo/gapic-generator-csharp/protobuf/csharp/src/Google.Protobuf/Google.Protobuf.csproj...
  Restoring packages for /tmpfs/src/git/autosynth/working_repo/gapic-generator-csharp/Google.Api.Generator/Google.Api.Generator.csproj...
  Generating MSBuild file /tmpfs/src/git/autosynth/working_repo/gapic-generator-csharp/protobuf/csharp/src/Google.Protobuf/obj/Google.Protobuf.csproj.nuget.g.props.
  Generating MSBuild file /tmpfs/src/git/autosynth/working_repo/gapic-generator-csharp/protobuf/csharp/src/Google.Protobuf/obj/Google.Protobuf.csproj.nuget.g.targets.
  Restore completed in 446.06 ms for /tmpfs/src/git/autosynth/working_repo/gapic-generator-csharp/protobuf/csharp/src/Google.Protobuf/Google.Protobuf.csproj.
  Generating MSBuild file /tmpfs/src/git/autosynth/working_repo/gapic-generator-csharp/Google.Api.Generator/obj/Google.Api.Generator.csproj.nuget.g.props.
  Generating MSBuild file /tmpfs/src/git/autosynth/working_repo/gapic-generator-csharp/Google.Api.Generator/obj/Google.Api.Generator.csproj.nuget.g.targets.
  Restore completed in 536.02 ms for /tmpfs/src/git/autosynth/working_repo/gapic-generator-csharp/Google.Api.Generator/Google.Api.Generator.csproj.
  Google.Protobuf -> /tmpfs/src/git/autosynth/working_repo/gapic-generator-csharp/protobuf/csharp/src/Google.Protobuf/bin/Release/netstandard2.0/Google.Protobuf.dll
  Google.Api.Generator -> /tmpfs/src/git/autosynth/working_repo/gapic-generator-csharp/Google.Api.Generator/bin/Release/netcoreapp2.2/linux-x64/Google.Api.Generator.dll
  Google.Api.Generator -> /tmpfs/src/git/autosynth/working_repo/gapic-generator-csharp/Google.Api.Generator/bin/Release/netcoreapp2.2/linux-x64/publish/
Cloning into 'gapic-generator'...
Cloning into 'googleapis'...
> Task :buildSrc:compileJava NO-SOURCE
> Task :buildSrc:compileGroovy
> Task :buildSrc:processResources NO-SOURCE
> Task :buildSrc:classes
> Task :buildSrc:jar
> Task :buildSrc:assemble
> Task :buildSrc:compileTestJava NO-SOURCE
> Task :buildSrc:compileTestGroovy NO-SOURCE
> Task :buildSrc:processTestResources NO-SOURCE
> Task :buildSrc:testClasses UP-TO-DATE
> Task :buildSrc:test NO-SOURCE
> Task :buildSrc:check UP-TO-DATE
> Task :buildSrc:build
> Task :extractIncludeProto
> Task :extractProto
> Task :generateProto

> Task :compileJava
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.

> Task :processResources
> Task :createProperties
> Task :classes
> Task :shadowJar

BUILD SUCCESSFUL in 13s
7 actionable tasks: 7 executed
Generating Google.Cloud.TextToSpeech.V1
Generating Google.Cloud.TextToSpeech.V1 (micro-generator)
synthtool > Wrote metadata to synth.metadata.

Looks like either we weren't being consistent with doc comment line endings before, or we're not now.
Great to see the diff being much smaller though :)

Ah, I think it's inconsistent now. I forgot that XmlDoc formatting is handled separately in the micro-generator. I'll look and fix it soon.
Probably best not o merge this PR quite yet.

Probably best not o merge this PR quite yet.

I'm hoping that by the time we're done, there will be 0 changes to commit :)

The XmlDoc newline is now fixed/merged in the micro-generator, so hopefully this PR will now vanish...

I'll close this PR, as I'm not sure that autosynth is smart enough to do that - but hopefully we won't get another one tomorrow :)


Update SWIFT_COMPILER_VERSION language features

Cherry-picks #58480 to release/5.7:

The SWIFT_COMPILER_VERSION define is used to stamp a vendor’s version number into a Swift compiler binary. It can be queried from Swift code using #if _compiler_version and from Clang by using a preprocessor definition called __SWIFT_COMPILER_VERSION. These are unsupported compiler-internal features used primarily by Apple Swift.
In Swift 1.0 through 5.5, Apple Swift used a scheme for SWIFT_COMPILER_VERSION where the major version matched the embedded clang (e.g. 1300 for Apple Clang 13.0.0) and the minor version was ignored. Starting in Swift 5.6, Apple Swift started using major and minor version numbers that matched the Swift.org version number. This makes them easier to understand, but it means that version 1300.0.x was followed by version 5.6.x. Not only did version numbers go backwards, but also the old logic to ignore minor versions was now a liability, because it meant you would not be able to target a change to 5.7.x compilers but not 5.6.x compilers.
This commit addresses the problem by:

Modifying the existing #if _compiler_version(string-literal) feature so it transforms the major version into a major and minor that will compare correctly to new version numbers. For instance, “1300.*” is transformed into “1.300”, which will compare correctly to a “5.6” or “5.7” version even if it doesn’t really capture the fact that “1300” was a Swift 5.5 compiler. As a bonus, this allows you to use the feature to backwards-compatibly test new compilers using the existing feature: “5007.*” will be seen by compilers before 5.7 as an unknown future version, but will be seen by 5.7 compilers as targeting them.

Modifying the __SWIFT_COMPILER_VERSION clang define similarly so that, to preprocessor conditions written for the old scheme, a 5.7 compiler will appear to have major version 5007.

Adding a new variant of #if _compiler_version with the same syntax as #if swift and #if compiler—that is, taking a comparison operator and a bare set of dotted version numbers, rather than a string literal. Going forward, this will be how version checks are written once compatibility with compilers before this change is no longer a concern.

These changes are only lightly tested because tests have to work without any compiler version defined (the default in most configurations), but I’ve tested what I can.
Fixes rdar://89841295.

@swift-ci please test

@swift-ci please test

It's too late to pick up this change for 5.7. The change is on main so it will make it into 5.8.


Feature Request: "Upcoming Movie" Search by rating

For the web interface (so I realize this is probably the wrong place) be able to search upcoming movies / recordings by rating (G , PG, etc)  With the ability to select one or more.  (maybe this is a future webserver feature)

This will be in the next version of the Web Server plugin.  A pre-release version can be found here: https://forums.sagetv.com/forums/showthread.php?p=607940#post607940
After allowing some time for feedback, this will go into the Sage 9 plugin repository.

This was released in version 3.2.1 of the Web UI several days ago.  This issue can be closed.


Validation rule for stale branches

A validation rule for stale branches. Validation fails, if the repository has more than 10 branches with latest commit being older than 90 days.
Fixes issue #127

I changed this to test branch (it executes acceptance tests), this process information was still missing from contribution guidelines... as were the contibution guidelines. :D

Great, I'll merge this.


2.6 publish to npm

Hi. Not sure if it is a right place to ask questions but do you have a plan to publish 2.6 to npm repositiory?

Hi @krychu83 — thank you for flagging this. It looks like the 2.6 release failed somehow — I've reopened that issue (#331) s we can look into it.

Hi @krychu83 — I found that we did indeed release 2.6.0 (here: https://github.com/googleapis/nodejs-datacatalog/releases/tag/v2.6.0, back in February) but it didn't make it all the way to npm. We re-triggered the release and it's there now: https://www.npmjs.com/package/@google-cloud/datacatalog as latest, although we also just released 3.0.0 two days ago and it's not there yet so I will also look into that. Thanks for letting us know!


Could not get unknown property 'packageReleaseResources'

Error:FAILURE: Build failed with an exception.

Where:
Script 'https://raw.githubusercontent.com/adwiv/android-fat-aar/master/fat-aar.gradle' line: 114

What went wrong:
A problem occurred configuring project ':app'.

Could not get unknown property 'packageReleaseResources' for project ':app' of type org.gradle.api.Project.

apply from: 'https://raw.githubusercontent.com/adwiv/android-fat-aar/master/fat-aar.gradle'
dependencies {
    embedded (project(':MyModule'))

'com.android.tools.build:gradle:2.2.2'
buildToolsVersion "25.0.0"

What is the android gradle version you are using?
Also, this script is not meant to be applied on 'app' module.. only for
library projects..

3.2 and 3.1

App
-- MyLib 1
-- -- External Lib 1
How to config this plugin for this case?

Do you publish MyLib to customers? If yes, then it should be applied on
MyLib.

No, it's an internal library for my App.

Then maybe you do not need this script.
This is only for people who release android libraries for use by other
people.

My App has lots of internal libs. So I need to make aars for it to speed up development.

Error:Could not find property 'packageReleaseResources' on project ':app'.   I have the same error

Error:Could not get unknown property 'packageReleaseResources' for project ':mainmodule' of type org.gradle.api.Project.
Who knows how to solve this problem?


Give warning to mandatory MongoDB attributes properties 6.1.x

See discussion: https://groups.google.com/a/apereo.org/forum/#!topic/cas-user/_aOhb33YZXo

Since defining attributes is necessary for pac4j to work when using MongoDB Authentication, the attributes properties is necessary here.
However, this behavior of requiring attributes is different from other authentication methods (e.g.JDBC), so I proposed to add an warning here for clarity sake. See if agree.
Would port back to master once this is merged.

Since defining attributes is necessary for pac4j to work when using MongoDB Authentication, the attributes properties is necessary here. However, this behavior of requiring attributes is different from other authentication methods (e.g.JDBC), so I proposed to add an warning here for clarity sake. See if agree.

Thanks for the patch but none of this sounds right.
Attribute support is always optional. All authentication methods in CAS work with or without presence of attributes in the authentication source. A design choice or limitation of a library should not have to contract consistent behavior elsewhere. Changes need to be done on pac4j to allow attribute-less authentication.

I suggest you report the issue to the pac4j project and follow up with a pull request to accommodate this behavior.

Nice!
I was quite confused at first as too way this was considered intended behavior instead of a bug when discussing in the Google Group.
Let me relay this issue to pac4j, thanks.

pac4j has its own consistency and it conflicts with the consistency of CAS, but that does not mean we should change pac4j.
My feeling is that the default behavior of pac4j should be kept, but changed when used in CAS to have consistency in both systems (alone or bundle).
Here is my proposal: by default, in CAS, the id,username,password attributes are defined, which makes things consistent in CAS: no need to define the attributes, consistent in pac4j and things will work properly. What do you think?

Here is my proposal: by default, in CAS, the id,username,password attributes are defined, which makes things consistent in CAS: no need to define the attributes, consistent in pac4j and things will work properly. What do you think?

Yes, that's great!

Here is my proposal: by default, in CAS, the id,username,password attributes are defined, which makes things consistent in CAS: no need to define the attributes, consistent in pac4j and things will work properly. What do you think?

I think that will be the best, as long as behavior is either consistent or documented, I am ok either way

Perfect. I'll submit a PR unless someone is quicker...

Is there  possibility to read serialized profile as previous versions? I think now CAS use only legacy  mode of pac4j and is not compatible when someone use catalogue od users with serializedprofile.


Fix a race condition in supported groups and ciphers handling

In TLSv1.3 the supported groups can be negotiated each time a handshake
occurs, regardless of whether we are resuming or not. We should not store
the supported groups information in the session because session objects
can be shared between multiple threads and we can end up with race
conditions. For most users this won't be seen because, by default, we
use stateless tickets in TLSv1.3 which don't get shared. However if you
use SSL_OP_NO_TICKET (to get stateful tickets in TLSv1.3) then this can
happen.
The answer is to move the supported the supported group information into
the SSL object instead.

Hi,
Thank @mattcaswell
I think it's not only about supported group. I also see the crash happen with ciphers selection
statem_srvr.c
if (!s->hit || SSL_IS_TLS13(s)) {
        sk_SSL_CIPHER_free(s->session->ciphers);
        s->session->ciphers = ciphers;
        if (ciphers == NULL) {
            SSLfatal(s, SSL_AD_INTERNAL_ERROR,
                     SSL_F_TLS_EARLY_POST_PROCESS_CLIENT_HELLO,
                     ERR_R_INTERNAL_ERROR);
            goto err;
        }
        ciphers = NULL;
    }

It's way I suggest to lock session when it used by one thread.
I let you know when applying the patch.

I think it's not only about supported groups. I also see the crash happen within ciphers selection

Any other places or just those two?

I added an additional commit to fix the other instance.

It's way I suggest to lock session when it used by one thread.

There really should be no need for that since the session object is supposed to be immutable. If we find cases where it isn't, then that's a bug.

I think it's not only about supported groups. I also see the crash happen within ciphers selection

Any other places or just those two?
I'm not sure.
I keep you informed when applying your patch.

Hello,
no more crash using mattcaswell:supp-group-race branch.
Thank you

Great - thanks for testing it.

I rebased this to fix a merge conflict with master, and added an additional commit to also move the ecpointformats data out of the session.
Ping @t8m.

Pushed to master. Unfortunately there was a non-trivial conflict when I tried to backport this to 1.1.1, so I have opened a new PR for the backport. See #9176.

It seems like this presents a slight behavior change, in that (e.g.) SSL_get_client_ciphers() will return an empty list after pre-TLS 1.3 resumption handshakes?  It's not clear that this was a terribly useful thing to do, but I want to check that we have considered those effects and are willing to accept them.


PI-1264: exclude i386 on cocoapods and add disclaimers to readme

Proposed changes
Exclude i386 for cocoapods and add disclaimers to readme
Types of changes
What types of changes does your code introduce to Frames Ios?
Put an x in the boxes that apply

[X] Bugfix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist
Put an x in the boxes that apply. You can also fill these out after creating the PR. If you're unsure about any of them, don't hesitate to ask. We're here to help! This is simply a reminder of what we are going to look for before merging your code.

[ ] Lint and unit tests pass locally with my changes
[ ] I have added tests that prove my fix is effective or that my feature works
[ ] I have added necessary documentation (if appropriate)

Further comments

This should into base branch as origin/release/release-3.4.4


Enable prometheus data collect on nginx-ingress

Build failed; the context from the latest run is:
Expand to view
[2019-09-10T18:52:15.515Z] Pull request #15 opened
[2019-09-10T18:52:15.517Z] Connecting to https://api.github.com using jenkinsadmin/****** (GitHub access token for jenkinsadmin)
[2019-09-10T18:52:15.943Z] Connecting to https://api.github.com to check permissions of obtain list of olblak for jenkins-infra/charts
[2019-09-10T18:52:16.483Z] Obtained Jenkinsfile from ca4236bad01fa4a27071c0494c63df40554b851e+f48440785d7d2e9b4a156f538e454bf7ec2d8dce (beeea674ee81974bd88b7445ca9bb53efe2a90e5)
[2019-09-10T18:52:16.483Z] Running in Durability level: MAX_SURVIVABILITY
[2019-09-10T18:52:16.521Z] Loading library pipeline-library@master
[2019-09-10T18:52:16.521Z] Attempting to resolve master from remote references...
[2019-09-10T18:52:16.584Z] Found match: refs/heads/master revision 478d9a971e23d8ec5ca57019cd3f478f42b6968e
[2019-09-10T18:52:16.585Z] No credentials specified
[2019-09-10T18:52:16.586Z] Cloning the remote Git repository
[2019-09-10T18:52:16.586Z] Cloning with configured refspecs honoured and without tags
[2019-09-10T18:52:16.680Z] remote: Enumerating objects
[2019-09-10T18:52:16.680Z] remote: Counting objects
[2019-09-10T18:52:16.682Z] remote: Compressing objects
[2019-09-10T18:52:16.683Z] Receiving objects
[2019-09-10T18:52:16.719Z] Resolving deltas
[2019-09-10T18:52:16.800Z] Fetching without tags
[2019-09-10T18:52:16.839Z] Checking out Revision 478d9a971e23d8ec5ca57019cd3f478f42b6968e (master)
[2019-09-10T18:52:16.863Z] Commit message: "Merge pull request #112 from jenkins-infra/INFRA-2243-fix"
[2019-09-10T18:52:16.864Z] First time build. Skipping changelog.
[2019-09-10T18:52:17.866Z]
[2019-09-10T18:52:17.866Z] GitHub has been notified of this commit’s build result
[2019-09-10T18:52:17.866Z]
[2019-09-10T18:52:17.867Z] org.codehaus.groovy.control.MultipleCompilationErrorsException: startup failed:
[2019-09-10T18:52:17.867Z] WorkflowScript: 3: Invalid agent type "kubernetes" specified. Must be one of [any, docker, dockerfile, label, none] @ line 3, column 5.
[2019-09-10T18:52:17.867Z]        kubernetes {
[2019-09-10T18:52:17.867Z]        ^
[2019-09-10T18:52:17.867Z]
[2019-09-10T18:52:17.867Z] 1 error
[2019-09-10T18:52:17.867Z]
[2019-09-10T18:52:17.867Z] 	at org.codehaus.groovy.control.ErrorCollector.failIfErrors(ErrorCollector.java:310)
[2019-09-10T18:52:17.867Z] 	at org.codehaus.groovy.control.CompilationUnit.applyToPrimaryClassNodes(CompilationUnit.java:1085)
[2019-09-10T18:52:17.867Z] 	at org.codehaus.groovy.control.CompilationUnit.doPhaseOperation(CompilationUnit.java:603)
[2019-09-10T18:52:17.867Z] 	at org.codehaus.groovy.control.CompilationUnit.processPhaseOperations(CompilationUnit.java:581)
[2019-09-10T18:52:17.867Z] 	at org.codehaus.groovy.control.CompilationUnit.compile(CompilationUnit.java:558)
[2019-09-10T18:52:17.867Z] 	at groovy.lang.GroovyClassLoader.doParseClass(GroovyClassLoader.java:298)
[2019-09-10T18:52:17.867Z] 	at groovy.lang.GroovyClassLoader.parseClass(GroovyClassLoader.java:268)
[2019-09-10T18:52:17.867Z] 	at groovy.lang.GroovyShell.parseClass(GroovyShell.java:688)
[2019-09-10T18:52:17.867Z] 	at groovy.lang.GroovyShell.parse(GroovyShell.java:700)
[2019-09-10T18:52:17.867Z] 	at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.doParse(CpsGroovyShell.java:142)
[2019-09-10T18:52:17.867Z] 	at org.jenkinsci.plugins.workflow.cps.CpsGroovyShell.reparse(CpsGroovyShell.java:127)
[2019-09-10T18:52:17.867Z] 	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.parseScript(CpsFlowExecution.java:561)
[2019-09-10T18:52:17.867Z] 	at org.jenkinsci.plugins.workflow.cps.CpsFlowExecution.start(CpsFlowExecution.java:522)
[2019-09-10T18:52:17.867Z] 	at org.jenkinsci.plugins.workflow.job.WorkflowRun.run(WorkflowRun.java:320)
[2019-09-10T18:52:17.867Z] 	at hudson.model.ResourceController.execute(ResourceController.java:97)
[2019-09-10T18:52:17.867Z] 	at hudson.model.Executor.run(Executor.java:429)
[2019-09-10T18:52:17.867Z] Finished: FAILURE

Powered by the Comment Logger


fix type hint for multiply and divide

fix type hint for multiply and divide when use float as multiplier or divide
fix #763

No float, it has been explained before.


Watchpack Error (initial scan): Error: ENOTDIR: not a directory in v3

Describe the bug
Tried to use nextra 3.0.1 and got the following issue (reproduced in codesandbox).
To Reproduce

Go to codesandbox.io
Click on the Start Dev Server terminal
See error and broken UI

Watchpack Error (initial scan): Error: ENOTDIR: not a directory, scandir '/project/sandbox/node_modules/next/dist/pages/_app.js'
 ⚠<EMAIL_ADDRESS>Critical dependency: the request of a dependency is an expression

Import trace for requested module:
<EMAIL_ADDRESS>./node_modules/twoslash/dist/index.mjs
<EMAIL_ADDRESS>./node_modules/nextra/dist/server/compile.js
./node_modules/nextra/dist/client/components/playground.js
./node_modules/nextra/dist/client/components/index.js
./node_modules/nextra-theme-docs/dist/index.js

Expected behavior
No error in terminal and a working nextra site.
Additional context
Setup from the Getting Started tutorial with the following dependencies versions
{
  "next": "14.2.13",
  "nextra": "3.0.1",
  "nextra-theme-docs": "3.0.1",
  "react": "18.3.1",
  "react-dom": "18.3.1"
}

having the same issue, did you find a workaround to fix this?

having the same issue, did you find a workaround to fix this?

Not yet, unlike the minimal codepen reproduction it doesn't work at all on my existing nextra site and only displays an Internal Server Error page instead of a broken UI, with the following stack traces:
 ○ Compiling / ...
Watchpack Error (initial scan): Error: ENOTDIR: not a directory, scandir '/path/to/node_modules/next/dist/pages/_app.js'
 ⨯ ../node_modules/typescript/lib/typescript.js:43173:24
Module not found: Can't resolve 'module'

https://nextjs.org/docs/messages/module-not-found

Import trace for requested module:
../node_modules/twoslash/dist/index.mjs
<EMAIL_ADDRESS>../node_modules/nextra/dist/server/compile.js
../node_modules/nextra/dist/client/components/playground.js
../node_modules/nextra/dist/client/components/index.js
../node_modules/nextra-theme-docs/dist/index.js
../node_modules/next/dist/esm/pages/_app.js

Watchpack Error (initial scan): Error: ENOTDIR: not a directory, scandir '/path/to/node_modules/next/dist/pages/_app.js'
 ⨯ ../node_modules/typescript/lib/typescript.js:43173:24
Module not found: Can't resolve 'module'

https://nextjs.org/docs/messages/module-not-found

Import trace for requested module:
../node_modules/twoslash/dist/index.mjs
<EMAIL_ADDRESS>../node_modules/nextra/dist/server/compile.js
../node_modules/nextra/dist/client/components/playground.js
../node_modules/nextra/dist/client/components/index.js
../node_modules/nextra-theme-docs/dist/index.js
../node_modules/next/dist/esm/pages/_app.js
 ⨯ Error: ENOENT: no such file or directory, open '/path/to/.next/fallback-build-manifest.json'
    at readFileSync (node:fs:448:20)
    at loadManifest (/path/to/node_modules/next/dist/server/load-manifest.js:36:52)
    at loadManifestWithRetries (/path/to/node_modules/next/dist/server/load-components.js:40:51)
    at async loadDefaultErrorComponentsImpl (/path/to/node_modules/next/dist/server/load-default-error-components.js:30:24)
    at async DevServer.getFallbackErrorComponents (/path/to/node_modules/next/dist/server/dev/next-dev-server.js:594:16)
    at async DevServer.renderErrorToResponseImpl (/path/to/node_modules/next/dist/server/base-server.js:2180:40)
    at async DevServer.renderToResponseImpl (/path/to/node_modules/next/dist/server/base-server.js:1996:30)
    at async DevServer.pipeImpl (/path/to/node_modules/next/dist/server/base-server.js:914:25)
    at async NextNodeServer.handleCatchallRenderRequest (/path/to/node_modules/next/dist/server/next-server.js:272:17)
    at async DevServer.handleRequestImpl (/path/to/node_modules/next/dist/server/base-server.js:810:17)
    at async /path/to/node_modules/next/dist/server/dev/next-dev-server.js:339:20
    at async Span.traceAsyncFn (/path/to/node_modules/next/dist/trace/trace.js:154:20)
    at async DevServer.handleRequest (/path/to/node_modules/next/dist/server/dev/next-dev-server.js:336:24)
    at async invokeRender (/path/to/node_modules/next/dist/server/lib/router-server.js:173:21)
    at async handleRequest (/path/to/node_modules/next/dist/server/lib/router-server.js:350:24) {
  errno: -2,
  code: 'ENOENT',
  syscall: 'open',
  path: '/path/to/.next/fallback-build-manifest.json'
}

Same problem when I followed the steps here: https://nextra.site/docs/docs-theme/start

try 3.0.2 where the warning Watchpack Error (initial scan): Error: ENOTDIR: not a directory, scandir is gone and styles seems correctly applied

Thanks for the quick fix @dimaMachina 🙏
did this resolve the issue for you @hrougier? I am still getting these errors on 3.0.2:
./node_modules/.pnpm/@typescript+vfs@1.6.0_typescript<EMAIL_ADDRESS>Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/.pnpm/@typescript+vfs@1.6.0_typescript<EMAIL_ADDRESS>./node_modules/.pnpm/twoslash<EMAIL_ADDRESS>./node_modules/.pnpm/@shikijs+twoslash@1.20.0_typescript<EMAIL_ADDRESS>./node_modules/.pnpm/nextra@3.0.2_@types+react@18.3.3_next@14.2.13_@opentelemetry+api<EMAIL_ADDRESS>./node_modules/.pnpm/nextra@3.0.2_@types+react@18.3.3_next@14.2.13_@opentelemetry+api<EMAIL_ADDRESS>./node_modules/.pnpm/nextra@3.0.2_@types+react@18.3.3_next@14.2.13_@opentelemetry+api<EMAIL_ADDRESS>
./node_modules/.pnpm/@typescript+vfs@1.6.0_typescript<EMAIL_ADDRESS>Critical dependency: the request of a dependency is an expression

Import trace for requested module:
./node_modules/.pnpm/@typescript+vfs@1.6.0_typescript<EMAIL_ADDRESS>./node_modules/.pnpm/@typescript+vfs@1.6.0_typescript<EMAIL_ADDRESS>./node_modules/.pnpm/twoslash<EMAIL_ADDRESS>./node_modules/.pnpm/@shikijs+twoslash@1.20.0_typescript<EMAIL_ADDRESS>./node_modules/.pnpm/nextra@3.0.2_@types+react@18.3.3_next@14.2.13_@opentelemetry+api<EMAIL_ADDRESS>./node_modules/.pnpm/nextra@3.0.2_@types+react@18.3.3_next@14.2.13_@opentelemetry+api<EMAIL_ADDRESS>./node_modules/.pnpm/nextra@3.0.2_@types+react@18.3.3_next@14.2.13_@opentelemetry+api<EMAIL_ADDRESS>./pages/blog/qa-chatbot-for-langfuse-docs.mdx

this is upstream, false positive warnings from twoslash package https://nextra.site/docs/guide/advanced/twoslash-support
I reported it already https://github.com/microsoft/TypeScript-Website/pull/3022
maybe we should disable twoslash by default

@marcklingen Yes it did resolve the Watchpack warning but I still get these 2:
 ⨯ ../node_modules/typescript/lib/typescript.js:43173:24
Module not found: Can't resolve 'module'
... (see previous comment)

and
Error: ENOENT: no such file or directory, open '/Users/hrougier/Workspaces/service-platform/docs/.next/fallback-build-manifest.json'
... (see previous comment)

Still experimenting to see what might be causing these errors!

maybe we should disable twoslash by default

Not sure if worth the complexity but would be a good option for me as I do not need twoslash support

"dependencies": {
    "next": "^14.2.13",
    "nextra": "3.0.2",
    "nextra-theme-docs": "3.0.2",
    "react": "^18.3.1",
    "react-dom": "^18.3.1"
},
"devDependencies": {
    "@types/react": "^18.3.10",
    "@types/node": "22.7.4",
    "typescript": "^5.6.2"
}

I used 3.0.2, and still getting broken page with no css style. and Critical dependency error
○ Compiling / ...
 ⚠<EMAIL_ADDRESS>Critical dependency: the request of a dependency is an expression

Import trace for requested module:
<EMAIL_ADDRESS>./node_modules/twoslash/dist/index.mjs
<EMAIL_ADDRESS>./node_modules/nextra/dist/server/compile.js
./node_modules/nextra/dist/client/components/playground.js
./node_modules/nextra/dist/client/components/index.js
./node_modules/nextra-theme-docs/dist/index.js
 GET / 200 in 51967ms

The error about the .next/fallback-build-manifest.json seems to happen because of the failing twoslash module import, I can confirm I got v3.0.2 to work by removing the following import and its usages:
import { rendererRich, transformerTwoslash } from "@shikijs/twoslash";

from node_modules/nextra/dist/server/compile.js (.next folder must be deleted and next dev server started again).
Now I have other issues with soft navigation when using the type: 'page' in _meta.js but that's another topic.

I used 3.0.2, and still getting broken page with no css style. and Critical dependency error

In my case this does not affect css, page works completely fine, just breaks dev-server navigation (need to try to navigate to each page twice before it actually works) and produces these logs. Production deployment looks completely fine

I used 3.0.2, and still getting broken page with no css style. and Critical dependency error

In my case this does not affect css, page works completely fine, just breaks dev-server navigation (need to try to navigate to each page twice before it actually works) and produces these logs. Production deployment looks completely fine

Yes, Production deployment looks completely fine. with version 3.0.2. without changing anything in node_modules/nextra/dist/server/compile.js

I found out how to fix warnings from @typescript/vfs without waiting for upstream fix 🎉
https://github.com/shuding/nextra/pull/3330

So now it left only warnings from unified
nextra:dev: "Value" is imported from external module "vfile" but never used in "node_modules/unified/index.d.ts".
nextra:dev: "CompileResults" is imported from external module "./lib/index.js" but never used in "node_modules/unified/index.d.ts".

Reported in https://github.com/unifiedjs/unified/issues/250

Can we reopen this issue? I still get the warning after upgrading to 3.0.7 - and it looks like other people are too

For now I'm working with this workaround in next.config.mjs:
import nextra from "nextra";

const withNextra = nextra({
  theme: "nextra-theme-docs",
  themeConfig: "./theme.config.tsx",
});

export default withNextra({
  webpack: (config) => {
    config.module = {
      ...config.module,
      exprContextCritical: false,
    };

    return config;
  },
});

But this isn't ideal.

Please share reproduction repo

I can't share the repo itself as it's private - but I tried creating a new repo from scratch as per the instructions here - https://nextra.site/docs/docs-theme/start
I followed the instructions to the letter, but when I ran pnpm run dev:

Once I got the lack-of-CSS problem above
I ran rm -rf .next and then pnpm run dev and got this warning:

Module not found: Can't resolve 'source-map-support' in<EMAIL_ADDRESS>
Import trace for requested module:
<EMAIL_ADDRESS>./node_modules/.pnpm/twoslash<EMAIL_ADDRESS>./node_modules/.pnpm/@shikijs+twoslash@1.22.0_typescript<EMAIL_ADDRESS>./node_modules/.pnpm/nextra@3.0.7_@types+react@18.3.11_next@14.2.15_react-dom@18.3.1_react<EMAIL_ADDRESS>./node_modules/.pnpm/nextra@3.0.7_@types+react@18.3.11_next@14.2.15_react-dom@18.3.1_react<EMAIL_ADDRESS>./node_modules/.pnpm/nextra@3.0.7_@types+react@18.3.11_next@14.2.15_react-dom@18.3.1_react<EMAIL_ADDRESS>./node_modules/.pnpm/nextra-theme-docs@3.0.7_next@14.2.15_react-dom@18.3.1_react@18.3.1__react<EMAIL_ADDRESS> GET / 200 in 13593ms

Though this seems to be a separate warning. Couldn't immediately reproduce this issue's warning on the clean repo, sorry

@danielkleinstein I still have the same issue with 3.07, my fix for now is to use the patch command of pnpm/yarn/bun to comment the twoslash import and usage from nextra/dist/server/compile.js:
pnpm patch nextra

Comment the twoslash import and usage from dist/server/compile.js
// import { rendererRich, transformerTwoslash } from "@shikijs/twoslash";

// ...

transformers: isRemoteContent ? [] : [
 // transformerTwoslash({
 //   renderer: rendererRich(),
 //   explicitTrigger: true
 // })
],

Commit the patch
pnpm patch-commit <path>

Not ideal but I don't need twoslash and it cannot be disabled right now.

@mnahkies you have a different error, which must be fixed with https://github.com/shuding/nextra/releases/tag/nextra%403.0.9
Can you confirm that it was fixed with new release?

@dimaMachina unfortunately that build I linked was from the commit bumping to 3.0.9 - so still an issue for me
It's a fairly vanilla typescript nextra project using nextra-theme-docs
Also sorry I thought this was the same underlying issue as the ENOTDIR thing as I was seeing that at some point alongside the error

@mnahkies can't reproduce locally

cloned your repo
updated nextra/nextra-theme-docs to 3.0.9
removed next-seo from theme.config
refactored _meta.json to _meta.js
didn't receive any errors

 ✘ dmytro@192  ~/Desktop/repros/openapi-code-generator   main ±  yarn workspace @nahkies/openapi-code-generator-documentation build
yarn workspace v1.22.17
yarn run v1.22.17
$ next build
 ⚠ Specified "redirects" will not automatically work with "output: export". See more info here: https://nextjs.org/docs/messages/export-no-custom-routes
 ⚠ Specified "redirects" will not automatically work with "output: export". See more info here: https://nextjs.org/docs/messages/export-no-custom-routes
  ▲ Next.js 14.2.13

 ✓ Linting and checking validity of types
   Creating an optimized production build ...
 ✓ Compiled successfully
 ✓ Collecting page data
 ✓ Generating static pages (15/15)
 ✓ Collecting build traces
 ⚠ rewrites, redirects, and headers are not applied when exporting your application, detected (redirects). See more info here: https://nextjs.org/docs/messages/export-no-custom-routes
 ✓ Finalizing page optimization

Route (pages)                                    Size     First Load JS
┌ ○ /                                            941 B           150 kB
├   /_app                                        0 B             145 kB
├ ● /_meta                                       241 B           145 kB
├ ○ /404                                         1.04 kB         150 kB
├ ○ /getting-started/quick-start                 6.25 kB         155 kB
├ ● /guides/_meta                                247 B           145 kB
├ ○ /guides/client-templates/typescript-angular  7.34 kB         157 kB
├ ○ /guides/client-templates/typescript-axios    7.48 kB         157 kB
├ ○ /guides/client-templates/typescript-fetch    7.58 kB         157 kB
├ ○ /guides/concepts/extract-inline-schemas      4.02 kB         153 kB
├ ○ /guides/server-templates/typescript-koa      8.53 kB         158 kB
├ ○ /overview/about                              3.95 kB         153 kB
├ ○ /overview/compatibility                      6.81 kB         156 kB
├ ○ /reference/architecture                      3.24 kB         152 kB
└ ○ /reference/cli-options                       5.44 kB         155 kB
+ First Load JS shared by all                    156 kB
  ├ chunks/framework-e82a91356956e6c8.js         44.8 kB
  ├ chunks/main-412a9cd0a25897ae.js              32.3 kB
  ├ chunks/pages/_app-bccdaae3d42700a4.js        65.8 kB
  ├ css/a509b722c23f67c3.css                     11.1 kB
  └ other shared chunks (total)                  1.75 kB

○  (Static)  prerendered as static content
●  (SSG)     prerendered as static HTML (uses getStaticProps)

✨  Done in 23.52s.
✨  Done in 23.80s.

I'm thoroughly confused then. More info:
$ yarn -v
4.5.0
$ node -v
v22.9.0
$ uname -r
6.10.12-200.fc40.x86_64

(I can see that your snippet above appears to be using yarn v1.22.17 although that should be irrelevant since I get the error if I invoke next build directly)
The only way I've been able to make it work so far is unconditionally returning [] from the getTransformers function modified in https://github.com/shuding/nextra/commit/f9cc1600c28e955eb14e6ea19ac7b6517a5d44bd
I put some logging in that function, and found it was getting called like so:
{"windowDefined":false,"isRemoteContent":false,"outputFormat":"program"}

From: https://github.com/shuding/nextra/blob/main/packages/nextra/src/server/loader.ts#L162-L169

I'm wondering if this might somehow be a Linux specific thing, here's a minimal reproduction using docker: https://github.com/mnahkies/nextra-bug-3322-reproduction

@mnahkies Oops, yep, I missed to enable corepack, I can reproduce now!

@mnahkies thanks for the contribution, fix is coming!

@dimaMachina can confirm - that fixed it for me, thanks for such a quick turnaround!


quicksql未来会停止维护吗？xsql会取代quicksql成为360的异构查询引擎吗？

quicksql and XSQL are responsible for different organizations. I don't know the plan of quicksql.
I want to say XSQL will continue to update, iterate.

Thanks a lot.
---原始邮件---
发件人: "Jiaan<EMAIL_ADDRESS>发送时间: 2019年9月10日(星期二) 上午10:28
收件人<EMAIL_ADDRESS>抄送: "liehuoqiangni"<953174501<EMAIL_ADDRESS>主题: Re: [Qihoo360/XSQL] quicksql未来会停止维护吗？xsql会取代quicksql成为360的异构查询引擎吗？ (#9)
quicksql and XSQL are responsible for different organizations. I don't know the plan of quicksql.
I want to say XSQL will continue to update, iterate.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.


add cname path and create new api version

MSFT employees can try out our new experience at OpenAPI Hub  - one location for using our validation tools and finding your workflow.

Changelog
Please ensure to add changelog with this PR by answering the following questions.

What's the purpose of the update?

[ ] new service onboarding
[x] new API version
[ ] update existing version for new feature
[ ] update existing version to fix swagger quality issue in s360
[ ] Other, please clarify

When you are targeting to deploy new service/feature to public regions? Please provide date, or month to public if date is not available yet.
When you expect to publish swagger? Please provide date, or month to public if date is not available yet.
If it's an update to existing version,  please select SDKs of specific language and CLIs that require refresh after swagger is published.

[ ] SDK of .NET (need service team to ensure code readiness)
[ ] SDK of Python
[ ] SDK of Java
[ ] SDK of Js
[ ] SDK of Go
[ ] PowerShell
[ ] CLI
[ ] Terraform
[ ] No, no need to refresh for updates in this PR

Contribution checklist:

[ ] I commit to follow the Breaking Change Policy of "no breaking changes"
[ ] I have reviewed the documentation for the workflow.
[ ] Validation tools were run on swagger spec(s) and errors have all been fixed in this PR. How to fix?

If any further question about AME onboarding or validation tools, please view the FAQ.
ARM API Review Checklist

[ ] Ensure to check this box if one of the following scenarios meet updates in the PR, so that label “WaitForARMFeedback” will be added automatically to involve ARM API Review. Failure to comply may result in delays for manifest application. Note this does not apply to data plane APIs, all “removals” and “adding a new property” no more require ARM API review.

Adding new API(s)
Adding a new API version
[ ] Ensure to copy the existing version into new directory structure for first commit (including refactoring) and then push new changes including version updates in separate commits. This is required to review the changes efficiently.
Adding a new service

[ ] Please ensure you've reviewed following guidelines including ARM resource provider contract and REST guidelines. Estimated time (4 hours). This is required before you can request review from ARM API Review board.

[ ] If you are blocked on ARM review and want to get the PR merged with urgency, please get the ARM oncall for reviews (RP Manifest Approvers team under Azure Resource Manager service) from IcM and reach out to them.

Breaking Change Review Checklist
If there are following updates in the PR, ensure to request an approval from Breaking Change Review Board as defined in the Breaking Change Policy.

[ ] Removing API(s) in stable version
[ ] Removing properties in stable version
[ ] Removing API version(s) in stable version
[ ] Updating API in stable or public preview version with Breaking Change Validation errors
[ ] Updating API(s) in public preview over 1 year (refer to Retirement of Previews)

Action: to initiate an evaluation of the breaking change, create a new intake using the template for breaking changes. Addition details on the process and office hours are on the Breaking change Wiki.
Please follow the link to find more details on PR review process.

/azp run

/azp run

/azp run

@ArcturusZhang could you take a look go SDK failure ?

@ArcturusZhang i need help bypass the Cross-Version breaking change.....can you please kindly help? What do i need to do here, we removed a property in 2021-05-13-preview version.

/azp run

@jianyexi can u kindly help me how to fix the cross-version breaking changes? in our latest preview version we have made certain properties optional.

We are introducing a breaking change, in 2020-12-01-Preview version we had ledgerStorageAccount as a required property for storing some files but as the service evolved during Private preview to Public preview, we realized ledgerStorageAccount complicated the Ledger Creation experience for customers and hence decided it was best to remove this and all files are now stored implicitly on an internal storage account. All our customers i think are already using 2021-05-13 preview API version as this change was checked in RPSaaSMaster branch and used in our ARM Manifest.


allow the upstream "Authorization" header to not be sent

I am wanting to use keycloak-proxy with grafana proxy auth module.
I have run into an issue where grafana detects the Authorization header and attempts to verify it as a grafana api key, and therefore throws an error.
One option could be to get grafana to disable api key checking, but I thought it may be simple to do it in here  ?

@cameronbraid sorry for the delay ... So you need an option to strip the authorization header before proxying on? ..

Yeah  that's what in after.
I have impenetrable a workaround with an nginx proxy that strips the header and it works successfully.
proxy_set_header        Authorization "";
But I'd rather no have to have two proxies :)

@cameronbraid  ... --enable-authorization-header was merged into release v1.2.7, it's enabled by default ... but you can --enable-authorization-header=false (or in config file) to switch it off

hi @cameronbraid, can i close the ticket as 'fixed'?

I havn't managed to test the change yet, but it looks good to me


help me~？

UV cache directory already exists, skipping disk space check
uv 0.5.11 (c4d0caaee 2024-12-19)
uv installed|UV模块已安装.
Windows .venv
Installing main requirements
Resolved 2 packages in 1.72s
x Failed to download wheel==0.45.1
|-> Failed to read from the distribution cache
-> 此文件或目录不是一个重分析点。 (os error 4390) Resolved 122 packages in 2.08s   x Failed to build utils3d @
| git+https://github.com/EasternJournalist/utils3d.git@9a4eb15e4021b67b12c460c7057d642626897ec8  |-> The build backend returned an error  -> Call to setuptools.build_meta.build_wheel failed (exit code: 1)
  [stderr]
  Traceback (most recent call last):
    File "<string>", line 8, in <module>
  ModuleNotFoundError: No module named 'setuptools'

  hint: This usually indicates a problem with the package or the build environment.

Install main requirements failed
Install failed|安装失败。

had a couple of issues and started fresh..

Open an administrator powershell window
Type Set-ExecutionPolicy Unrestricted and answer A
Close admin powershell window
git clone --recurse-submodules https://github.com/sdbds/TRELLIS-for-windows.git
python -m venv E:\TRELLIS-for-windows-main.venv
E:\TRELLIS-for-windows-main.venv\Scripts\Activate.ps1
In windows explorer run 1、install-uv-qinglong.ps1 with right click run with powershell
I opened new powershell window
E:\TRELLIS-for-windows-main.venv\Scripts\Activate.ps1 or .venv\Scripts\Activate.ps1 if in your TRELLIS directory
Once it finished right click 2、run_gui.ps1 run with powershell

python -m venv E:\TRELLIS-for-windows-main.venv

I couldn't find this fileTRELLIS-for-windows-main.venv

I couldn't find this fileTRELLIS-for-windows-main.venv
So I replaced the command
1、python -m venv E:\TRELLIS-for-windows-main.venv   ->python -m venv venv
2、E:\TRELLIS-for-windows-main.venv\Scripts\Activate.ps1 ->venv\Scripts\activate
In windows explorer run 1、install-uv-qinglong.ps1 with right click run with powershell
I opened new powershell window
E:\TRELLIS-for-windows-main.venv\Scripts\Activate.ps1 or .venv\Scripts\Activate.ps1 if in your TRELLIS directory
Once it finished right click 2、run_gui.ps1 run with powershell
UV cache directory already exists, skipping disk space check
uv 0.5.11 (c4d0caaee 2024-12-19)
uv installed|UV模块已安装.
Windows venv
Installing main requirements
Using Python 3.12.6 environment at: venv
Resolved 2 packages in 2.75s
x Failed to download wheel==0.45.1
|-> Failed to read from the distribution cache
-> 此文件或目录不是一个重分析点。 (os error 4390) Using Python 3.12.6 environment at: venv   x No solution found when resolving dependencies:   -> Because cumm-cu120==0.4.11 has no wheels with a matching Python ABI tag and you require
cumm-cu120==0.4.11, we can conclude that your requirements are unsatisfiable.
Install main requirements failed
Install failed|安装失败。

Windows PowerShell
版权所有（C） Microsoft Corporation。保留所有权利。
安装最新的 PowerShell，了解新功能和改进！https://aka.ms/PSWindows
加载个人及系统配置文件用了 512 毫秒。
(base) PS C:\Windows\system32> g:
(base) PS G:> cd .\TRELLIS-for-windows
(base) PS G:\TRELLIS-for-windows> .\venv\Scripts\activate
(venv) (base) PS G:\TRELLIS-for-windows> .\1、install-uv-qinglong.ps1
UV cache directory already exists, skipping disk space check
uv 0.5.11 (c4d0caaee 2024-12-19)
uv installed|UV模块已安装.
Windows venv
Installing main requirements
Using Python 3.12.6 environment at: venv
Resolved 2 packages in 1.83s
x Failed to download wheel==0.45.1
|-> Failed to read from the distribution cache
-> 此文件或目录不是一个重分析点。 (os error 4390) Using Python 3.12.6 environment at: venv   x No solution found when resolving dependencies:   -> Because cumm-cu120==0.4.11 has no wheels with a matching Python ABI tag and you require cumm-cu120==0.4.11, we
can conclude that your requirements are unsatisfiable.
Install main requirements failed
Install failed|安装失败。

(base) PS C:\Users\win11> conda create -n trellis python=3.11
Retrieving notices: ...working... done
WARNING: A conda environment already exists at 'C:\Users\win11.conda\envs\trellis'
Remove existing environment (y/[n])? Y
Channels:

defaults
Platform: win-64
Collecting package metadata (repodata.json): done
Solving environment: done

Package Plan
environment location: C:\Users\win11.conda\envs\trellis
added / updated specs:
- python=3.11
The following packages will be downloaded:
package                    |            build
---------------------------|-----------------
python-3.11.11             |       h4607a30_0        18.7 MB
------------------------------------------------------------
                                       Total:        18.7 MB

The following NEW packages will be INSTALLED:
bzip2              pkgs/main/win-64::bzip2-1.0.8-h2bbff1b_6
ca-certificates    pkgs/main/win-64::ca-certificates-2024.11.26-haa95532_0
libffi             pkgs/main/win-64::libffi-3.4.4-hd77b12b_1
openssl            pkgs/main/win-64::openssl-3.0.15-h827c3e9_0
pip                pkgs/main/win-64::pip-24.2-py311haa95532_0
python             pkgs/main/win-64::python-3.11.11-h4607a30_0
setuptools         pkgs/main/win-64::setuptools-75.1.0-py311haa95532_0
sqlite             pkgs/main/win-64::sqlite-3.45.3-h2bbff1b_0
tk                 pkgs/main/win-64::tk-8.6.14-h0416ee5_0
tzdata             pkgs/main/noarch::tzdata-2024b-h04d1e81_0
vc                 pkgs/main/win-64::vc-14.40-haa95532_2
vs2015_runtime     pkgs/main/win-64::vs2015_runtime-14.42.34433-h9531ae6_2
wheel              pkgs/main/win-64::wheel-0.44.0-py311haa95532_0
xz                 pkgs/main/win-64::xz-5.4.6-h8cc25b3_1
zlib               pkgs/main/win-64::zlib-1.2.13-h8cc25b3_1
Proceed ([y]/n)? y
Downloading and Extracting Packages:
Preparing transaction: done
Verifying transaction: done
Executing transaction: done

To activate this environment, use

$ conda activate trellis

To deactivate an active environment, use

$ conda deactivate
(base) PS C:\Users\win11> conda activate trellis
(trellis) PS C:\Users\win11> g:
(trellis) PS G:> cd tr
cd : 找不到路径“G:\tr”，因为该路径不存在。
所在位置 行:1 字符: 1

cd tr

  + CategoryInfo          : ObjectNotFound: (G:\tr:String) [Set-Location], ItemNotFoundException
  + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand

(trellis) PS G:> cd .\TRELLIS-for-windows
(trellis) PS G:\TRELLIS-for-windows> conda activate trellis
(trellis) PS G:\TRELLIS-for-windows> .\1、install-uv-qinglong.ps1
UV cache directory already exists, skipping disk space check
uv 0.5.11 (c4d0caaee 2024-12-19)
uv installed|UV模块已安装.
Windows venv
Installing main requirements
Using Python 3.12.4 environment at: venv
Resolved 2 packages in 1.85s
x Failed to download wheel==0.45.1
|-> Failed to read from the distribution cache
-> 此文件或目录不是一个重分析点。 (os error 4390) Using Python 3.12.4 environment at: venv   x No solution found when resolving dependencies:   -> Because cumm-cu120==0.4.11 has no wheels with a matching Python ABI tag and you require
cumm-cu120==0.4.11, we can conclude that your requirements are unsatisfiable.
Install main requirements failed
Install failed|安装失败。

It looks like your original python is incomplete.

It looks like your original python is incomplete.

请问大佬Python版本要求是？我独立去安装一个之后再试试、
我用venv 和conda指定版本做虚拟环境都失败了。


Compiler error using @key decorator

I have tested the simpler subscription examples successfully, and now I am trying autosubscriptions using the @key decorator, such as in your example:
@autoSubscribe
    getTodosForUser(@key username: string) {
        return this._todosByUser[username];
    }

Unfortunately, I get a compiler error:

Error: Module parse failed: Unexpected character '@' (1:20609)
You may need an appropriate loader to handle this file type.

It seems like Babel has a problem with the @key decorator being used within a function, and not with other decorators like @autoSubscribe and @AutoSubscribeStore.
I've checked my babel.config.js and everything seems OK, using:
  const plugins = [
    ['@babel/plugin-proposal-decorators', { legacy: true }],
    ["@babel/plugin-proposal-class-properties", { "loose": true}]
  ];

Did someone else come across this problem? Any recommendation on how to solve this?

In theory, once the typescript outputs the javascript that babel will be processing, the decorators should be completely gone.  Are you trying to use the decorators straight inside javascript?

No, I use it in my typescript code. As I wrote, it is odd, since all decorators other than the @key create no problem at all.

It appears that using decorators straight in babel has different support than Typescript, and reading the comments, they're actually a little mad that Typescript went ahead and implemented function parameter decorators:
https://github.com/babel/proposals/issues/13 (more context at https://github.com/babel/babel/issues/1301)
So I think you have to use Typescript to process the decorators, not babel, at this time.

I see, thanks for info. You mean, I should remove the Babel decorator plugin in babel.config.js? Do I need a Typescript plugin then? Any additional info you can point me to?

I'm not even sure what the right terminology is, but in most of our apps, we only use babel later in the build pipeline.  Typescript compiles the decorators down into non-decorated ES5 or ES6 (depending on the project), and then babel runs some other cleanup on it from there.  If you look at this TodoList sample app from the ReactXP repo, it shows using resub with a typescript app and a simplified version of the build pipeline that we use in our private projects:
https://github.com/Microsoft/reactxp/tree/master/samples/TodoList

Any update on this or on the best way to resolve the issue? None of the examples seem to use the @key function parameter decorator

Several of the unit tests use @key.  You can start with one of those build systems.

I don't know, actual code.
But for me, the problem was, that Typescript doesn't allow property-decorators for superclasses.
So my aproach was, that i call the key function manually in the constructor.
Something like
``
class SubStore extends StoreBase {
constructor(throttleMs: number | undefined, bypassTriggerBlocks: boolean) {
super(throttleMs, bypassTriggerBlocks);
key(this, 'getTodosForUser', 0);
}
@autoSubscribe
getTodosForUser(@key username: string) {
return this._todosByUser[username];
}
}
``
should work.

Very strange.  We have @key working lots of places in our codebase:
    @autoSubscribe
    isLoading(@key username: string): boolean {
    ...

        "resub": "^1.2.0",
        "typescript": "3.5.1",

Yeah I wasn't able to get @key working. My build config is the same as the create react-xp app from https://github.com/a-tarasyuk/create-rx-app. I'll try @BiggA94 's method

@a-tarasyuk Have you tried using @key in any of your samples?  I've never actually tried building with the create-rx-app since I always just copy an older project of mine and keep evolving my private stash of garbage. :)

@deregtd no, I have not tried. I suppose that the problem with the @babel/plugin-proposal-decorators  which doesn't handle parameter decorators., I think there are babel plugins which can be used to add this feature.

I just ran into this problem with a personal project - using React Native with babel transpiling typescript. As @a-tarasyuk mentioned above, you need an additional plugin to add babel support.
I had success with babel-plugin-parameter-decorator
My plugin list looks like this:
  plugins: [
    ["@babel/plugin-proposal-decorators", { legacy: true }],
    "babel-plugin-parameter-decorator"
  ],

I just put out a PR to add a note about babel to our README, this should help unblock consumers using babel. @thegalah, can you try this out?

I tried babel-plugin-parameter-decorator and I get:
Module build failed (from ./node_modules/babel-loader/lib/index.js):
TypeError: Cannot read property 'name' of undefined

Opened a bug on babel-plugin-parameter-decorator
https://github.com/WarnerHooh/babel-plugin-parameter-decorator/issues/5

Hi all,
Nice to hear this plugin helps. And thanks your feedback @berickson1 .
I have published a new version already. This should fix the problem.
Please feel free to let me know if you still have the problem.

Thanks @WarnerHooh - this solves my issues. @thegalah - can you bump package version to 1.0.8 and try again?

@berickson1 I've bumped the package version to 1.0.8 and I now get:
ERROR in ./src/Services/Data/Stores/UserScheduleStore.ts
Module build failed (from ./node_modules/babel-loader/lib/index.js):
TypeError: Cannot read property 'forEach' of undefined
    at node_modules\babel-plugin-parameter-decorator\lib\index.js:84:60

Hi @thegalah,
Thanks for the feedback, I had a quick fix in 1.0.9. Hope all good if you try with this version.

This worked for me! Thanks for the great work!


Benchmars

In Benchmarks section, I see you point to the same repo.
should we update it?

to what?

Benchmarks for node.js v6.1.0 versus left-pad.
Benchmarks for node.js v6.1.0 versus stevemao/left-pad.
The two links are same.... 'left-pad' and 'stevemao/left-pad'

would have probably taken 50% of the amount of time to just do a pr to fix the link instead of creating issues on two different projects to explain that a link is broken.

@jonschlinkert  You misunderstood me. I feel it is better to raise an issue first for project like this. ( Who has large downloads).  After the discussion, I am happy to make any PR.
I was just viewing all the issues in left-pad and saw your issue ticket.
I am happy to submit a PR once you think it's necessary.
I saw nothing I did was wrong. : )

Since stevemao/left-pad is currently the repo for left-pad module

left-pad was updated to use code that is very similar to the code that was already used in the underlying library used in this module (repeat-string). Sindre Sorhus did the same thing with repeating.  I think this is terrible open source, code theft shouldn't be encouraged. The only reason I added benchmarks is to show that despite using code from a this library, left-pad and repeating still aren't as performant. This is what happens when you copy code you don't understand.


Replace std::transform with llvm::transform

Replace uses of std::transform with llvm::transform where applicable to simplify the code.

Resolves SR-14138.

@swift-ci please test

Thanks for the PR. I think it looks good; I'm not sure if you ran clang-format or not... some of the formatting seems a bit odd. 😅 In case you missed it, we have instructions on how to run clang-format here.
New contributors can't kick off PR testing or merge changes onto the main branch, because we previously had some malicious folks come in and kick off CI on lots of PRs, leading to .
@swift-ci please smoke test

@swift-ci smoke test Linux

@swift-ci smoke test macOS

Okay, thanks for letting me know about the tests.
Yes, I did run clang-format. And the tests have passed as well. Please let me know if any changes are required.

LGTM, we can merge this. :shipit:


Outfit Polls 2.0

Features:

Navigation screen to get to poll creation
Poll results page shows percentages of vote distribution per field (maybe a cool graph/pie chart too)
Poll creators should be able to:

mark a field as required or optional
hide the results of a given poll
restrict a poll to only logged-in users

restrict a poll to only logged-in users who are in the outfit (prerequisite is that we can map character ownership to a discord account)
restrict a poll to only specific discord IDs

delete a poll
set a date + time to close the poll to votes (auto-redirect to results)

Poll voters should:

be able to vote anonymously (if they are logged-in)
know whether their answer will show up on the results page (where all voters will be able to see what they wrote/chose, though not who wrote/chose it. If the voter didn't vote anonymously, only the poll creator will know who wrote what).

Issues:

Users can vote multiple times

Feel free to add more features/add issues to these lists! @dm0896665

I really like the pie chart idea. Some suggestions that I would add is on the results to be able to review individual results would be nice to see what description answers go with which multiple-choice choices.
The other thing that I thought would be cool is just how to display the poll creator settings. I think that it would be cool to kind of have a cog wheel in the top right that is a dropdown that will show all of these options. Then have the same thing on the results page that allows you to edit it later so you don't need to recreate the whole poll if you forgot to make it a private poll.
Multiple votes are definitely something that needs to be addressed though.


deploy on aws

app will be deployed on AWS

elastic beanstalk (automatize)
ec2 (server)
rds (for db)
s3 (for war file of app)

will be used.

app deployed


[api] Combine GetAddress, WalletInformation, GetEthereumSelectedAddress

As a note, we saw an error in the App.test.tsx case that seems to be caused by jsdom not implementing setInterval correctly. Here is an issue on webtorrent that relates to that issue.