Fedora 42 updated tk to 9.,0, which makes tkdiff fail due to version check. If I change the requirement in tkdiff to 9.0 it works but I don't know if there are compatibility issues.
Gonna need some time to investigate. Technically the version check in TkDiff should only require a MINIMUM of TK 8.5, so I don't understand WHY 9.0 (clearly more recent) is unacceptable. The fact you say it seems to RUN is encouraging (it SHOULD, as Tcl/Tk has a history of generally maintaining backward compatibility). Post anything else you find to this ticket and I'll do the same with what I can learn.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
In a general sense, perhaps. But by and large, TkDiff is written well within the bounds of classic TCL scripting only, and underwent a serious (>70%) code refactoring in the V8.5-8.6 time frame, making it thus relatively impervious to a majority of changes taking place in version 9.0. Such changes are mostly those of prior announced deprecationsfinally being removed because of the now new MAJOR version number(eg. 8 -->> 9). Many of whose 'deprecations' date back to pre-V8.6 which, given the glacial progress toward V9.0, has already been a span of roughly 5-12 years.
Nevertheless, I absolutely appreciate and applaud the reference links you provided (saved me from tracking them down), and they were of immense help in assessing the scope of this issue. Long live open source and collaborators such as yourself.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
OK - so with regard to the version-check failure. I personally would contend that this is a coding bug, but whomever wrote it originally probably failed to interpret closely the exact syntax required to express the notion of a minimum, but open-ended semantic. Instead, what was actually written was a minimum, but terminated at the next MAJOR version. Accordingly, while you stated changing the version (from 8.5 to 9.0 worked for you, the real fix should be the value "8.5-" (note the trailing dash character)! I would appreciate your making this change and reporting back if it then STILL continues to function for you.
As to your concern for "what else might fail" -- utilizing the references above (thanks again to 'guardus'), I'm reasonably confident that nearly EVERYTHING should function as normal. Of the myriad things that are now GONE (formerly deprecated but supported) virtually ALL are simply not present in TkDiff; except the following:
1. tilde notation when naming files; and
2. internal scoping of variables used within a TCL namespace (a coding encapsulation syntax)
The first of these indicates that UNLESS TOLD TO (by explicit code from V9.0) the Unix-like convention of naming files with a leading tilde character (~) to signify the users (or ~named users) HOME directory will no longer be automatically interpreted as such. The tilde becomes just another plain character. For the time being, until a point release of TkDiff can be made to address this, I simply recommend NOT using such syntax when entering filenames, as there IS coding that expected the tilde to have been expanded, when possible.
The second item (telling TCL where to LOOK for variables) is not EXPECTED to raise any problems, but if it DOES, TCL will likely complain about missing variables/values surrounding the use of something called a 'combobox' widget which is used to present a drop-down, editable and/or select-able list of items (such as SCM choices, the toolbar list of existing diff regions, and certain user Preference items). Obviously if this occurs, please forward the particulars to us so it can be addressed, via a new Bug ticket
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Wait - line #32 (package require Tk 8.5-) should be the ONLY place to have needed editing -- where (and why) did you make a SECOND edit??
A text searches only turns up seven additional occurrences of a 8.5 string of text, ALL of which are buried within comments, and as documentation, need not change NOR have any effect whatsoever.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Wow. I hate to admit this, but you ARE correct (frankly, that whole line should have been ELIMINATED a long time ago - which is what I intend to do going forward). Feel free to delete it as it is ALREADY covered by the one on line#32! Better yet, place an octothorp (#) as the first char ON that line (making it a comment); that way you'll still have the same line numbers in YOUR script as the 'official' one, in case you need to report yet MORE issues!
The only reason it worked until now is because BOTH specified a COMMON major version number: 8.5 and 8.0, in which case only the higher one (on line#32) really mattered. But I can see WHY it matters in your Tk V9.x situation! Thanks for your timely comment about 'twice'! One more bug bites the dust!!
I'm leaving this ticket as open UNTIL an update release can occur, to serve as a touchstone for anyone else who needs to get their TkDiff V5.7 script working in a TK 9.x environment. That way you'll get notified when it closes and you can download the update.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Gonna need some time to investigate. Technically the version check in TkDiff should only require a MINIMUM of TK 8.5, so I don't understand WHY 9.0 (clearly more recent) is unacceptable. The fact you say it seems to RUN is encouraging (it SHOULD, as Tcl/Tk has a history of generally maintaining backward compatibility). Post anything else you find to this ticket and I'll do the same with what I can learn.
Tcl 9 is incompatible with 8.
See below links for major incompatibilities and more info.
https://www.tcl-lang.org/software/tcltk/9.0.html
https://core.tcl-lang.org/tcl/wiki?name=Migrating+scripts+to+Tcl+9
https://wiki.tcl-lang.org/page/Porting+extensions+to+Tcl+9
https://github.com/apnadkarni/tcl9-migrate
In a general sense, perhaps. But by and large, TkDiff is written well within the bounds of classic TCL scripting only, and underwent a serious (>70%) code refactoring in the V8.5-8.6 time frame, making it thus relatively impervious to a majority of changes taking place in version 9.0. Such changes are mostly those of prior announced deprecations finally being removed because of the now new MAJOR version number(eg. 8 -->> 9). Many of whose 'deprecations' date back to pre-V8.6 which, given the glacial progress toward V9.0, has already been a span of roughly 5-12 years.
Nevertheless, I absolutely appreciate and applaud the reference links you provided (saved me from tracking them down), and they were of immense help in assessing the scope of this issue. Long live open source and collaborators such as yourself.
OK - so with regard to the version-check failure. I personally would contend that this is a coding bug, but whomever wrote it originally probably failed to interpret closely the exact syntax required to express the notion of a minimum, but open-ended semantic. Instead, what was actually written was a minimum, but terminated at the next MAJOR version. Accordingly, while you stated changing the version (from 8.5 to 9.0 worked for you, the real fix should be the value "8.5-" (note the trailing dash character)! I would appreciate your making this change and reporting back if it then STILL continues to function for you.
As to your concern for "what else might fail" -- utilizing the references above (thanks again to 'guardus'), I'm reasonably confident that nearly EVERYTHING should function as normal. Of the myriad things that are now GONE (formerly deprecated but supported) virtually ALL are simply not present in TkDiff; except the following:
1. tilde notation when naming files; and
2. internal scoping of variables used within a TCL namespace (a coding encapsulation syntax)
The first of these indicates that UNLESS TOLD TO (by explicit code from V9.0) the Unix-like convention of naming files with a leading tilde character (~) to signify the users (or ~named users) HOME directory will no longer be automatically interpreted as such. The tilde becomes just another plain character. For the time being, until a point release of TkDiff can be made to address this, I simply recommend NOT using such syntax when entering filenames, as there IS coding that expected the tilde to have been expanded, when possible.
The second item (telling TCL where to LOOK for variables) is not EXPECTED to raise any problems, but if it DOES, TCL will likely complain about missing variables/values surrounding the use of something called a 'combobox' widget which is used to present a drop-down, editable and/or select-able list of items (such as SCM choices, the toolbar list of existing diff regions, and certain user Preference items). Obviously if this occurs, please forward the particulars to us so it can be addressed, via a new Bug ticket
Yes, putting 8.5- works as well (in two places). Thanks!
Wait - line #32 (package require Tk 8.5-) should be the ONLY place to have needed editing -- where (and why) did you make a SECOND edit??
A text searches only turns up seven additional occurrences of a 8.5 string of text, ALL of which are buried within comments, and as documentation, need not change NOR have any effect whatsoever.
I have the line 32 but also line 15359
Wow. I hate to admit this, but you ARE correct (frankly, that whole line should have been ELIMINATED a long time ago - which is what I intend to do going forward). Feel free to delete it as it is ALREADY covered by the one on line#32! Better yet, place an octothorp (#) as the first char ON that line (making it a comment); that way you'll still have the same line numbers in YOUR script as the 'official' one, in case you need to report yet MORE issues!
The only reason it worked until now is because BOTH specified a COMMON major version number: 8.5 and 8.0, in which case only the higher one (on line#32) really mattered. But I can see WHY it matters in your Tk V9.x situation! Thanks for your timely comment about 'twice'! One more bug bites the dust!!
I'm leaving this ticket as open UNTIL an update release can occur, to serve as a touchstone for anyone else who needs to get their TkDiff V5.7 script working in a TK 9.x environment. That way you'll get notified when it closes and you can download the update.