Skip to content

Conversation

@tisonkun
Copy link
Member

Signed-off-by: tison <wander4096@gmail.com>
# under the License.

[default.extend-words]
"NUMER" = "NUMER"
Copy link
Member Author

@tisonkun tisonkun Dec 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ignore l1_numer/RESIZE_NUMER and others. Not sure if they are typos or special words.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"numer" stands for numerator, I've copied the constants from datasketches-cpp (https://github.com/apache/datasketches-cpp/blob/7bb979d3ef8929e235bcd22d67579e1f695f6ecd/hll/include/CubicInterpolation-internal.hpp#L127-L130)

We can opt for "numerator", I think it's better anyway.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

OK. I'd leave the workaround here and let's handle the naming in a follow-up PR if necessary.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd review this config in a follow-up PR.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We may need INFRA's help to turn on Semantic PR on this repo. But anyway if we agree on using conventional commits, we can leave it here for now.

cargo run --example hll_usage
required:
name: Required
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can later add a required status check in .asf.yaml to ensure all PRs can only be merged if CI passed.

version = "0.1.0"

edition = "2024"
rust-version = "1.85.0"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

edition 2024 requires at least MSRV=1.85.

I personally like moving MSRV eagerly because the old toolchain doesn't get maintained anyway. But other library authors would like to stay as low as possible to keep a wide user adoption range, which, in turn, blocks their dependencies from bumping MSRV.

This is another topic we may discuss later.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm happy to start with 1.85.

@tisonkun tisonkun mentioned this pull request Dec 15, 2025
Copy link
Member

@Xuanwo Xuanwo left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank for setting up this!

# under the License.

[default.extend-words]
"NUMER" = "NUMER"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"numer" stands for numerator, I've copied the constants from datasketches-cpp (https://github.com/apache/datasketches-cpp/blob/7bb979d3ef8929e235bcd22d67579e1f695f6ecd/hll/include/CubicInterpolation-internal.hpp#L127-L130)

We can opt for "numerator", I think it's better anyway.

Signed-off-by: tison <wander4096@gmail.com>
Comment on lines 61 to 76
msrv:
name: Resolve MSRV
runs-on: ubuntu-24.04
outputs:
rust-versions: ${{ steps.metadata.outputs.rust-versions }}
steps:
- uses: actions/checkout@v6
- name: Delete rust-toolchain.toml
run: rm rust-toolchain.toml
- name: Install toolchain
uses: dtolnay/rust-toolchain@nightly
- id: metadata
run: |
msrv=$(cargo metadata --format-version 1 --no-deps | jq -r '.packages[] | select(.name == "datasketches") | .rust_version')
echo "MSRV: $msrv"
echo "rust-versions=[\"${msrv}\", \"stable\"]" >> "$GITHUB_OUTPUT"
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ref - #13 (comment)

Let me see if I can get this shell puzzle a bit more understandable.

And the job's & step's naming ...

Copy link
Member Author

@tisonkun tisonkun Dec 15, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Use yq over cargo metadata since cargo metadata can hardly tell what is "our crate". (You must hardcode the crate name as above)

msrv=$(yq '.package.rust-version' Cargo.toml)

Directly read from Cargo.toml. The only ceveat is that if later we move to a workspace setup, it would be msrv=$(yq '.workspace.package.rust-version' Cargo.toml) like what I'm testing on fast/logforth#203.

Signed-off-by: tison <wander4096@gmail.com>
@freakyzoidberg
Copy link
Member

LGTM, good for merge ?

@notfilippo
Copy link
Contributor

Thanks for the MSRV logic. It looks really good!

Good to merge on my side!

@freakyzoidberg freakyzoidberg merged commit dd38076 into apache:main Dec 15, 2025
@notfilippo
Copy link
Contributor

https://github.com/apache/datasketches-rust/actions/runs/20229178951

Seems like some of the steps are not approved

@tisonkun
Copy link
Member Author

https://github.com/apache/datasketches-rust/actions/runs/20229178951

Seems like some of the steps are not approved

Let me do some investigation. It's due to INFRA's actions approval policy and let me see how to work it around.

@tisonkun tisonkun deleted the github-ci branch December 15, 2025 10:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Bootstrap basic Rust CI

4 participants