Skip to content

Allow TCL 9.0 for tests#1673

Merged
zuiderkwast merged 2 commits into
valkey-io:unstablefrom
zuiderkwast:tcl9
Oct 8, 2025
Merged

Allow TCL 9.0 for tests#1673
zuiderkwast merged 2 commits into
valkey-io:unstablefrom
zuiderkwast:tcl9

Conversation

@zuiderkwast

@zuiderkwast zuiderkwast commented Feb 5, 2025

Copy link
Copy Markdown
Contributor

Makes our tests possible to run with TCL 9.

The latest Fedora now has TCL 9.0 and it's working now, including the TCL TLS package. (This wasn't working earlier due to some packaging errors for TCL packages in Fedora, which have been fixed now.)

This PR also removes the custom compilation of TCL 8 used in our Daily jobs and uses the system default TCL version instead. The TCL version depends on the OS. For the latest Fedora, you get 9.0, for macOS you get 8.5 and for most other OSes you get 8.6.

The checks for TCL 8.7 are removed, because 8.7 doesn't exist. It was never released.

@zuiderkwast zuiderkwast added the run-extra-tests Run extra tests on this PR (Runs all tests from daily except valgrind and RESP) label Feb 5, 2025
@zuiderkwast

Copy link
Copy Markdown
Contributor Author

Fedora now comes with TCL 9.0 and we started getting failures like this: https://github.com/valkey-io/valkey/actions/runs/13147311114/job/36688160501

@zuiderkwast zuiderkwast added the test-failure An issue indicating a test failure label Feb 5, 2025
@zuiderkwast zuiderkwast marked this pull request as draft February 5, 2025 22:22
@hwware

hwware commented Feb 5, 2025

Copy link
Copy Markdown
Contributor

Which version is used in our online CI?

@zuiderkwast

Copy link
Copy Markdown
Contributor Author

Which version is used in our online CI?

Most of them have 8.6. Macos has 8.5. Fedora rawhide has now only 9.0. I guess we need to support all of them.

@zuiderkwast zuiderkwast marked this pull request as ready for review February 5, 2025 23:23
@zuiderkwast zuiderkwast requested review from enjoy-binbin and hwware and removed request for hwware February 5, 2025 23:25
@zuiderkwast

Copy link
Copy Markdown
Contributor Author

TCL 9.0 works now. The test-fedorarawhide-jemalloc job passed.

The remaining failures are other problems. One of them is solved in #1675.

@zuiderkwast

Copy link
Copy Markdown
Contributor Author

😱 Still fails with TLS:

version conflict for package "tcl": have 9.0.0, need 8.4

Need to solve this too.

@codecov

codecov Bot commented Feb 5, 2025

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 71.57%. Comparing base (70d336d) to head (aeec287).
⚠️ Report is 110 commits behind head on unstable.

Additional details and impacted files
@@             Coverage Diff              @@
##           unstable    #1673      +/-   ##
============================================
- Coverage     71.58%   71.57%   -0.01%     
============================================
  Files           125      125              
  Lines         69214    69214              
============================================
- Hits          49545    49542       -3     
- Misses        19669    19672       +3     

see 12 files with indirect coverage changes

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@zuiderkwast zuiderkwast marked this pull request as draft February 6, 2025 00:09
@zuiderkwast

zuiderkwast commented Feb 6, 2025

Copy link
Copy Markdown
Contributor Author

😓 The TCL TLS package doesn't seem to support TCL 9.0 yet. See here: https://core.tcl-lang.org/tcltls/wiki/Documentation

There's a beta version of this package 2.0 which will support TCL 9.0 according to this page: https://core.tcl-lang.org/tcltls/file?name=doc/tls.html&ci=trunk

Currently, fedora rawhide includes tcltls 1.7 which is incompatible with tcl 9.0 and effectively broken. I guess they will fix it soon.

Alternatives to this PR:

  • Download and build TCL 8.6, without using fedora's package repos.
  • Remove Fedora rawhide from our daily scope. It is the current development verions, like our unstable branch. Maybe we shouldn't actually run it in daily?

@enjoy-binbin

Copy link
Copy Markdown
Member

Remove Fedora rawhide from our daily scope. It is the current development verions, like our unstable branch. Maybe we shouldn't actually run it in daily?

i think we can go with this option.

Comment thread tests/instances.tcl
@madolson

madolson commented Feb 7, 2025

Copy link
Copy Markdown
Member

Remove Fedora rawhide from our daily scope. It is the current development verions, like our unstable branch. Maybe we shouldn't actually run it in daily?

I think having it here is good as it notifies us about upcoming issues, but I agree for the moment we shouldn't be blocked on it.

@zuiderkwast

Copy link
Copy Markdown
Contributor Author

@jonathanspw is looking at solving this in Fedora, probably add TCL 8 back.

* Remove version requirements like `package require Tcl 8.5` which prevent TCL 9.x.
* Remove TCL 8.7 from list of allowed versions, since there is no such version.
* Change `fconfigure -encoding binary` to `-translation binary`.
* Don't require a specific version of the TCL TLS package.

Signed-off-by: Viktor Söderqvist <viktor.soderqvist@est.tech>
Signed-off-by: Viktor Söderqvist <viktor.soderqvist@est.tech>
@zuiderkwast zuiderkwast removed the test-failure An issue indicating a test failure label Aug 7, 2025
@zuiderkwast zuiderkwast marked this pull request as ready for review August 7, 2025 23:23
@zuiderkwast

Copy link
Copy Markdown
Contributor Author

The CI failures are not related to the TCL version. They are other failures, mostly known ones, not related to this PR.

roshkhatri pushed a commit to roshkhatri/valkey that referenced this pull request Oct 14, 2025
Makes our tests possible to run with TCL 9.

The latest Fedora now has TCL 9.0 and it's working now, including the
TCL TLS package. (This wasn't working earlier due to some packaging
errors for TCL packages in Fedora, which have been fixed now.)

This PR also removes the custom compilation of TCL 8 used in our Daily
jobs and uses the system default TCL version instead. The TCL version
depends on the OS. For the latest Fedora, you get 9.0, for macOS you get
8.5 and for most other OSes you get 8.6.

The checks for TCL 8.7 are removed, because 8.7 doesn't exist. It was
never released.

---------

Signed-off-by: Viktor Söderqvist <viktor.soderqvist@est.tech>
@roshkhatri

Copy link
Copy Markdown
Member

Do we need to backport these changes to release branches?
I see tests are failing due to TCL 8.5

@sarthakaggarwal97

Copy link
Copy Markdown
Contributor

Context: The goal is to make already released branches flaky test free and backport the existing effort from unstable to stabilize the branches. Currently due to the TCL 8.5 check, fedora runners aren't able to run the test because they have 9.0 installed.

Sample Link of the failure: https://github.com/sarthakaggarwal97/valkey/actions/runs/19113712295/job/54617221974

So I guess we will need to backport these changes to allow for TCL 9.0. @zuiderkwast @madolson any thoughts on this? Is it safe to remove this check (considering there could be breaking changes from TCL 8 to TCL 9?)

Another option is to skip fedora tests for now on the already released branches.

@zuiderkwast

Copy link
Copy Markdown
Contributor Author

Yes, it's fine to backport this PR. It's a good idea.

Is it safe to remove this check (considering there could be breaking changes from TCL 8 to TCL 9?)

Yes, this PR fixes the small differences that need to be fixed for the tests to work with TCL 8 and 9. One example is this change:

-    fconfigure $fd -encoding binary
+    fconfigure $fd -translation binary

@sarthakaggarwal97 sarthakaggarwal97 moved this to To be backported in Valkey 8.0 Nov 6, 2025
@sarthakaggarwal97 sarthakaggarwal97 moved this to To be backported in Valkey 8.1 Nov 6, 2025
sarthakaggarwal97 pushed a commit to sarthakaggarwal97/valkey that referenced this pull request Nov 6, 2025
Makes our tests possible to run with TCL 9.

The latest Fedora now has TCL 9.0 and it's working now, including the
TCL TLS package. (This wasn't working earlier due to some packaging
errors for TCL packages in Fedora, which have been fixed now.)

This PR also removes the custom compilation of TCL 8 used in our Daily
jobs and uses the system default TCL version instead. The TCL version
depends on the OS. For the latest Fedora, you get 9.0, for macOS you get
8.5 and for most other OSes you get 8.6.

The checks for TCL 8.7 are removed, because 8.7 doesn't exist. It was
never released.

---------

Signed-off-by: Viktor Söderqvist <viktor.soderqvist@est.tech>
sarthakaggarwal97 pushed a commit to sarthakaggarwal97/valkey that referenced this pull request Nov 6, 2025
Makes our tests possible to run with TCL 9.

The latest Fedora now has TCL 9.0 and it's working now, including the
TCL TLS package. (This wasn't working earlier due to some packaging
errors for TCL packages in Fedora, which have been fixed now.)

This PR also removes the custom compilation of TCL 8 used in our Daily
jobs and uses the system default TCL version instead. The TCL version
depends on the OS. For the latest Fedora, you get 9.0, for macOS you get
8.5 and for most other OSes you get 8.6.

The checks for TCL 8.7 are removed, because 8.7 doesn't exist. It was
never released.

---------

Signed-off-by: Viktor Söderqvist <viktor.soderqvist@est.tech>
zuiderkwast added a commit that referenced this pull request Nov 6, 2025
Makes our tests possible to run with TCL 9.

The latest Fedora now has TCL 9.0 and it's working now, including the
TCL TLS package. (This wasn't working earlier due to some packaging
errors for TCL packages in Fedora, which have been fixed now.)

This PR also removes the custom compilation of TCL 8 used in our Daily
jobs and uses the system default TCL version instead. The TCL version
depends on the OS. For the latest Fedora, you get 9.0, for macOS you get
8.5 and for most other OSes you get 8.6.

The checks for TCL 8.7 are removed, because 8.7 doesn't exist. It was
never released.

Backport of #1673.

Signed-off-by: Viktor Söderqvist <viktor.soderqvist@est.tech>
Co-authored-by: Viktor Söderqvist <viktor.soderqvist@est.tech>
zuiderkwast added a commit that referenced this pull request Nov 6, 2025
Makes our tests possible to run with TCL 9.

The latest Fedora now has TCL 9.0 and it's working now, including the
TCL TLS package. (This wasn't working earlier due to some packaging
errors for TCL packages in Fedora, which have been fixed now.)

This PR also removes the custom compilation of TCL 8 used in our Daily
jobs and uses the system default TCL version instead. The TCL version
depends on the OS. For the latest Fedora, you get 9.0, for macOS you get
8.5 and for most other OSes you get 8.6.

The checks for TCL 8.7 are removed, because 8.7 doesn't exist. It was
never released.

Backport of #1673.

Signed-off-by: Viktor Söderqvist <viktor.soderqvist@est.tech>
Co-authored-by: Viktor Söderqvist <viktor.soderqvist@est.tech>
@zuiderkwast zuiderkwast moved this from To be backported to Done in Valkey 8.0 Nov 6, 2025
@zuiderkwast zuiderkwast moved this from To be backported to Done in Valkey 8.1 Nov 6, 2025
@ranshid

ranshid commented Jan 11, 2026

Copy link
Copy Markdown
Member

I see that this: #1673 was not backported to 9.0 (intentionally?)
we have it in Unstable, 8.0 and 8.1. should we backport to 9.0? (@zuiderkwast)

@zuiderkwast

Copy link
Copy Markdown
Contributor Author

Yeah, let's backport to 9.0.

@github-project-automation github-project-automation Bot moved this to To be backported in Valkey 9.0 Jan 11, 2026
zuiderkwast added a commit to zuiderkwast/valkey that referenced this pull request Jan 29, 2026
Makes our tests possible to run with TCL 9.

The latest Fedora now has TCL 9.0 and it's working now, including the
TCL TLS package. (This wasn't working earlier due to some packaging
errors for TCL packages in Fedora, which have been fixed now.)

This PR also removes the custom compilation of TCL 8 used in our Daily
jobs and uses the system default TCL version instead. The TCL version
depends on the OS. For the latest Fedora, you get 9.0, for macOS you get
8.5 and for most other OSes you get 8.6.

The checks for TCL 8.7 are removed, because 8.7 doesn't exist. It was
never released.

---------

Signed-off-by: Viktor Söderqvist <viktor.soderqvist@est.tech>
zuiderkwast added a commit to zuiderkwast/valkey that referenced this pull request Jan 30, 2026
Makes our tests possible to run with TCL 9.

The latest Fedora now has TCL 9.0 and it's working now, including the
TCL TLS package. (This wasn't working earlier due to some packaging
errors for TCL packages in Fedora, which have been fixed now.)

This PR also removes the custom compilation of TCL 8 used in our Daily
jobs and uses the system default TCL version instead. The TCL version
depends on the OS. For the latest Fedora, you get 9.0, for macOS you get
8.5 and for most other OSes you get 8.6.

The checks for TCL 8.7 are removed, because 8.7 doesn't exist. It was
never released.

---------

Signed-off-by: Viktor Söderqvist <viktor.soderqvist@est.tech>
@zuiderkwast zuiderkwast moved this from To be backported to 9.0.2 WIP in Valkey 9.0 Jan 30, 2026
zuiderkwast added a commit that referenced this pull request Feb 3, 2026
Makes our tests possible to run with TCL 9.

The latest Fedora now has TCL 9.0 and it's working now, including the
TCL TLS package. (This wasn't working earlier due to some packaging
errors for TCL packages in Fedora, which have been fixed now.)

This PR also removes the custom compilation of TCL 8 used in our Daily
jobs and uses the system default TCL version instead. The TCL version
depends on the OS. For the latest Fedora, you get 9.0, for macOS you get
8.5 and for most other OSes you get 8.6.

The checks for TCL 8.7 are removed, because 8.7 doesn't exist. It was
never released.

---------

Signed-off-by: Viktor Söderqvist <viktor.soderqvist@est.tech>
sarthakaggarwal97 added a commit to sarthakaggarwal97/valkey that referenced this pull request Apr 16, 2026
Fedora Rawhide/Latest now ships Tcl 9.x. The runtest scripts only
looked for tclsh8.5/8.6/8.7, causing 'You need tcl 8.5 or newer'
failures on Fedora CI jobs.

Minimal backport of the Tcl version detection from valkey-io#1673.

Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
sarthakaggarwal97 added a commit to sarthakaggarwal97/valkey that referenced this pull request Apr 27, 2026
Fedora Rawhide/Latest now ships Tcl 9.x. The runtest scripts only
looked for tclsh8.5/8.6/8.7, causing 'You need tcl 8.5 or newer'
failures on Fedora CI jobs.

Minimal backport of the Tcl version detection from valkey-io#1673.

Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
(cherry picked from commit 09b6338)
sarthakaggarwal97 added a commit to sarthakaggarwal97/valkey that referenced this pull request May 3, 2026
Fedora Rawhide/Latest now ships Tcl 9.x. The runtest scripts only
looked for tclsh8.5/8.6/8.7, causing 'You need tcl 8.5 or newer'
failures on Fedora CI jobs.

Minimal backport of the Tcl version detection from valkey-io#1673.

Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
(cherry picked from commit 09b6338)
madolson pushed a commit that referenced this pull request May 6, 2026
Fedora Rawhide/Latest now ships Tcl 9.x. The runtest scripts only
looked for tclsh8.5/8.6/8.7, causing 'You need tcl 8.5 or newer'
failures on Fedora CI jobs.

Minimal backport of the Tcl version detection from #1673.

Signed-off-by: Sarthak Aggarwal <sarthagg@amazon.com>
(cherry picked from commit 09b6338)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

run-extra-tests Run extra tests on this PR (Runs all tests from daily except valgrind and RESP)

Projects

Status: Done
Status: Done
Status: 9.0.2

Development

Successfully merging this pull request may close these issues.

7 participants