A place to document items to consider as we prepare for a Tcl 9.0b1 release release
Schedule
- 9.0b1 release candidate 0: 2023-11-14 without Tk and bundled packages. In fossil, it is tagged with rc0 and core-9-0-b1-rc: 8741a3ae
- Tk and bundled packages are tested for compatibity with this rc0
- 9.0b1 release candidate 1: 2023-11-28 with Tk and bundled packages
- 9.0b1 release candidate 2: 2023-12-15 with Tk and bundled packages
- 9.0b1 release: around Christmas 2023.
Below is the list of work items gating a release.
Tcl 9.0 work items
- Open code issues: none
- Tcl 9.0 release notes
- Migration guide for Tcl scripts
- Migration guide for Tcl C extensions
Tk 9.0 work items
- Open code issues:
- A new fossil branch "core-8-branch" was added also to Tk, as recent TIPs are Tk 9.0 only and don't go to Tk8.7. Tk8.7 is not abandoned, but delayed to a later date.
- Tk 9.0 release notes
- Migration guide for Tk scripts
- Migration guide for Tk C extensions
Bundled packages
Brian and Steve will investigate:
- Thread (trunk now tagged as 3.0 by Jan)
- Sqlite
- Tdbc*
- itcl
Other packages
- To maintain: List of apps migrated to Tcl 9
- Information on the wiki: Porting extensions to Tcl 9
- Tcllib -> TCL 9 version is merged to trunk. CriTCL for TCL 9 is missing. Andreas will investigate.
- Tklib -> it can wait until tested / ported
- Tclconfig -> tested when building pkgs
- Sample extension
Documentation and Website
- There is a project underway to modernise the Tcl/Tk documentation - for an early preview see this page
- Website updates (within the scope of the documentation project)
- Announcements
- Release notes - focussing on key features
- Update download links
Releases
- use existing GitHub CI to build single file distributions (zipkits) for testing on common platforms - Steve + Donal
- source via Fossil repo
- tarball and zip via Sourceforge
Liaise with distribution maintainers
- Linux apt / dpkg / pacman / rpm
- BSD netbsd / obsd
- macOS brew and macports
Liaise with the TkInter community
When rc1 is out, the TkInter community should be contacted to ask for their opinions and needs.
Nagelfar TCL syntax checker
Nagelfar is a syntax checker for TCL which may be used to check TCL9 compatibility. Please check out the current source, as there is no release with this feature. The author welcomes any inspiration and sample use-cases for improvements.
Solved items
- TIP 567 "Add Operation to Support Set-like Slots" was accepted by a vote. Some code cleanup by Donal.
- TIP 641 Macro for Tcl_GetBoolean(FromObj) changed to give a warning, if sizeof(argument) is above sizeof(int).
- TIP 647 "Change Tk_ConfigureWidgets signature, abandon TK_CONFIG_OBJS" by Jan Nijtmans
- TIP 653 "Handle consumed data of channel commands in case of encoding errors".
- TIP 657 Make "-profile strict" the default in Tcl 9.0.
- TIP 661 make the compatibility macros switchable (beside "NO_DEPRECIATED") and of by default. -> merged
- TIP 664 activates warnings, when a compatibility macro is used. -> widthdrawn and reverted. As 661 makes it a clear option with a clear decission, warnings are not necessary any more.
- TIP 670 "Simple Extra Procedures for File Access" by Donal Fellows.
- TIP 671 New encoding profile - lossless. This allows to open all files found by glob, but has the impact, that strings must be specially handled. Moved to TCL 9.1.
- TIP 677 "Constant variables" by Donal Fellows
- TIP 678 "Better API for Detached Treeview Items" by Donal Fellows.
- TIP 682 "Create tmp. widget in "option get" call" by René Zaumseil: will be changed to use an
option default
command. - TIP 683 "Remove legacy "pack" and "scrollbar" syntax" by Jan Nijtmans
- TIP 684 "Add Support for Touchpad Scrolling to Tk" by Marc Culler (and Csaba).