www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - tkd does not build anymore after 2.096

reply tastyminerals <tastyminerals gmail.com> writes:
There have been numerous deprecation warnings for nice **tkd** 
library: https://github.com/nomad-software/tkd and with the 
current ldc 1.27.1 it fails to build.

```
x11 1.0.21: building configuration "tcltk-import"...
tcltk 8.6.5: building configuration "library"...
tkd 1.1.13: building configuration "library"...
../../../../.dub/packages/tkd-1.1.13/tkd/source/tkd/widget/common/canvas/ar
specific.d(134,10): Error: incompatible types for `(0.0) : (this._startAngle)`:
`double` and `Nullable!double`
../../../../.dub/packages/tkd-1.1.13/tkd/source/tkd/widget/common/canvas/ou
linewidth.d(45,10): Error: incompatible types for `(0) : (this._outlineWidth)`:
`int` and `Nullable!int`
../../../../.dub/packages/tkd-1.1.13/tkd/source/tkd/widget/common/canvas/ou
linewidth.d(92,10): Error: incompatible types for `(0) :
(this._activeOutlineWidth)`: `int` and `Nullable!int`
../../../../.dub/packages/tkd-1.1.13/tkd/source/tkd/widget/common/canvas/out
inewidth.d(139,10): Error: incompatible types for `(0) :
(this._disabledOutlineWidth)`: `int` and `Nullable!int`
../../../../.dub/packages/tkd-1.1.13/tkd/source/tkd/widget/common/canvas/te
tspecific.d(56,10): Error: incompatible types for `(0.0) : (this._angle)`:
`double` and `Nullable!double`
../../../../.dub/packages/tkd-1.1.13/tkd/source/tkd/widget/common/canvas/tex
specific.d(234,10): Error: incompatible types for `(0) :
(this._maxLineLength)`: `int` and `Nullable!int`
../../../../.dub/packages/tkd-1.1.13/tkd/source/tkd/widget/common/canvas/widg
tspecific.d(79,10): Error: incompatible types for `(0) : (this._width)`: `int`
and `Nullable!int`
../../../../.dub/packages/tkd-1.1.13/tkd/source/tkd/widget/common/canvas/widge
specific.d(127,10): Error: incompatible types for `(0) : (this._height)`: `int`
and `Nullable!int`
../../../../.dub/packages/tkd-1.1.13/tkd/source/tkd/widget/common/canvas/ar
specific.d(134,10): Error: incompatible types for `(0.0) : (this._startAngle)`:
`double` and `Nullable!double`
../../../../.dub/packages/tkd-1.1.13/tkd/source/tkd/widget/common/canvas/ou
linewidth.d(45,10): Error: incompatible types for `(0) : (this._outlineWidth)`:
`int` and `Nullable!int`
../../../../.dub/packages/tkd-1.1.13/tkd/source/tkd/widget/common/canvas/ou
linewidth.d(92,10): Error: incompatible types for `(0) :
(this._activeOutlineWidth)`: `int` and `Nullable!int`
../../../../.dub/packages/tkd-1.1.13/tkd/source/tkd/widget/common/canvas/out
inewidth.d(139,10): Error: incompatible types for `(0) :
(this._disabledOutlineWidth)`: `int` and `Nullable!int`
../../../../.dub/packages/tkd-1.1.13/tkd/source/tkd/widget/common/canvas/ou
linewidth.d(45,10): Error: incompatible types for `(0) : (this._outlineWidth)`:
`int` and `Nullable!int`
../../../../.dub/packages/tkd-1.1.13/tkd/source/tkd/widget/common/canvas/ou
linewidth.d(92,10): Error: incompatible types for `(0) :
(this._activeOutlineWidth)`: `int` and `Nullable!int`
../../../../.dub/packages/tkd-1.1.13/tkd/source/tkd/widget/common/canvas/out
inewidth.d(139,10): Error: incompatible types for `(0) :
(this._disabledOutlineWidth)`: `int` and `Nullable!int`
../../../../.dub/packages/tkd-1.1.13/tkd/source/tkd/widget/common/canvas/ou
linewidth.d(45,10): Error: incompatible types for `(0) : (this._outlineWidth)`:
`int` and `Nullable!int`
../../../../.dub/packages/tkd-1.1.13/tkd/source/tkd/widget/common/canvas/ou
linewidth.d(92,10): Error: incompatible types for `(0) :
(this._activeOutlineWidth)`: `int` and `Nullable!int`
../../../../.dub/packages/tkd-1.1.13/tkd/source/tkd/widget/common/canvas/out
inewidth.d(139,10): Error: incompatible types for `(0) :
(this._disabledOutlineWidth)`: `int` and `Nullable!int`
../../../../.dub/packages/tkd-1.1.13/tkd/source/tkd/widget/common/canvas/ou
linewidth.d(45,10): Error: incompatible types for `(0) : (this._outlineWidth)`:
`int` and `Nullable!int`
../../../../.dub/packages/tkd-1.1.13/tkd/source/tkd/widget/common/canvas/ou
linewidth.d(92,10): Error: incompatible types for `(0) :
(this._activeOutlineWidth)`: `int` and `Nullable!int`
/Users/pavels/.local/share/ldc2/bin/ldc2 failed with exit code 1.
```

Since the repo is **archived** now how can we keep the library 
alive? Is it up to the person whoever forks it and then keeps a 
working copy of it? What about the corresponding dub package 
page? Is there a defined process or anything about the potential 
handover?
For example, I could keep a working fork for myself but updating 
it for the dub would be even better. What do you think?
Oct 12 2021
next sibling parent reply russhy <russhy gmail.com> writes:
Recent version for nullable removed implicit conversion, you must 
call .get now.. wich is a pain to update


i suggest using a previous version of ``struct Nullable`` 
https://github.com/dlang/phobos/blob/v2.096.1/std/typecons.d

create a nullable.d file in tkd project, and replace the imports 
to that module

that'll solve this issue

but that wouldn't solve the fact that the 
https://code.dlang.org/packages/tkd package won't build

we need to contact the maintainers and suggest to update the 
library


another solution would be to revert the nullable change

that sounds like an unnecessary change that breaks lot of 
code/packages..
Oct 12 2021
parent reply tastyminerals <tastyminerals gmail.com> writes:
On Tuesday, 12 October 2021 at 17:35:53 UTC, russhy wrote:
 Recent version for nullable removed implicit conversion, you 
 must call .get now.. wich is a pain to update


 i suggest using a previous version of ``struct Nullable`` 
 https://github.com/dlang/phobos/blob/v2.096.1/std/typecons.d

 create a nullable.d file in tkd project, and replace the 
 imports to that module

 that'll solve this issue

 but that wouldn't solve the fact that the 
 https://code.dlang.org/packages/tkd package won't build

 we need to contact the maintainers and suggest to update the 
 library


 another solution would be to revert the nullable change

 that sounds like an unnecessary change that breaks lot of 
 code/packages..
Yes, I can locally "fix" that but I would also like whoever wants to compile the app in the company also compile it for his machine :( I tried to find the email of the maintainer but so far didn't have time for search.
Oct 12 2021
parent reply russhy <russhy gmail.com> writes:
On Tuesday, 12 October 2021 at 18:18:45 UTC, tastyminerals wrote:
 On Tuesday, 12 October 2021 at 17:35:53 UTC, russhy wrote:
 Recent version for nullable removed implicit conversion, you 
 must call .get now.. wich is a pain to update


 i suggest using a previous version of ``struct Nullable`` 
 https://github.com/dlang/phobos/blob/v2.096.1/std/typecons.d

 create a nullable.d file in tkd project, and replace the 
 imports to that module

 that'll solve this issue

 but that wouldn't solve the fact that the 
 https://code.dlang.org/packages/tkd package won't build

 we need to contact the maintainers and suggest to update the 
 library


 another solution would be to revert the nullable change

 that sounds like an unnecessary change that breaks lot of 
 code/packages..
Yes, I can locally "fix" that but I would also like whoever wants to compile the app in the company also compile it for his machine :( I tried to find the email of the maintainer but so far didn't have time for search.
I found this twitter: https://twitter.com/nomaddeveloper And his linkdin: https://uk.linkedin.com/in/gary-willoughby-33b48963 (Publicly available on his website: http://nomad.uk.net/pages/about.html) What you should probably do anyways is: 1- fork the project on github 2- apply the workaround for nullable Update your dub file so it picks your dependency (people forgot, but you can use git repo as dependencies, just like in go) ```json "repository":"https://github.com/your_github/tkd.git", "dependencies": { "tkd": "~master" // or what ever version you want } ```
Oct 12 2021
parent tastyminerals <tastyminerals gmail.com> writes:
On Wednesday, 13 October 2021 at 01:55:38 UTC, russhy wrote:
 On Tuesday, 12 October 2021 at 18:18:45 UTC, tastyminerals 
 wrote:
 On Tuesday, 12 October 2021 at 17:35:53 UTC, russhy wrote:
 [...]
Yes, I can locally "fix" that but I would also like whoever wants to compile the app in the company also compile it for his machine :( I tried to find the email of the maintainer but so far didn't have time for search.
I found this twitter: https://twitter.com/nomaddeveloper And his linkdin: https://uk.linkedin.com/in/gary-willoughby-33b48963 (Publicly available on his website: http://nomad.uk.net/pages/about.html) What you should probably do anyways is: 1- fork the project on github 2- apply the workaround for nullable Update your dub file so it picks your dependency (people forgot, but you can use git repo as dependencies, just like in go) ```json "repository":"https://github.com/your_github/tkd.git", "dependencies": { "tkd": "~master" // or what ever version you want } ```
Thank you. I have contacted him via LinkedIn and he unarchived the repo so I could push a PR. The PR is now merged and a new tkd version `1.1.14` is available via dub. This version is compatible with the recent dmd. All good.
Oct 15 2021
prev sibling next sibling parent reply rikki cattermole <rikki cattermole.co.nz> writes:
The repo itself hasn't been archived as of this writing. So a PR may 
succeed.

But yeah the guy is gone by the looks.

If he is willing this could be a possible candidate for moving it to 
dlang-community although it'll need someone to shepherd it.

https://github.com/nomad-software/tkd
Oct 12 2021
parent WebFreak001 <d.forum webfreak.org> writes:
On Wednesday, 13 October 2021 at 02:03:30 UTC, rikki cattermole 
wrote:
 The repo itself hasn't been archived as of this writing. So a 
 PR may succeed.

 But yeah the guy is gone by the looks.

 If he is willing this could be a possible candidate for moving 
 it to dlang-community although it'll need someone to shepherd 
 it.

 https://github.com/nomad-software/tkd
it was archived but isn't anymore. Migrating it to dlang-community would be a good idea I think, but idk if it's needed having a maintainer for it. Having more people who have push access would at least be better for managing PRs and issues than having it archived though.
Oct 13 2021
prev sibling parent russhy <russhy gmail.com> writes:
But ultimately, if the repo is archived, that means it is not 
maintained anymore

The licence is MIT, so you can fork it and maintain a new updated 
version, at least an updated one that compiles


--

github repos marked as "archived" should be reflected in the 
code.dlang.org page, dub should also display a warning when 
compiling an archived package in my opinion
Oct 13 2021