Thread overview
tkd does not build anymore after 2.096
Oct 12, 2021
tastyminerals
Oct 12, 2021
russhy
Oct 12, 2021
tastyminerals
Oct 13, 2021
russhy
Oct 15, 2021
tastyminerals
Oct 13, 2021
rikki cattermole
Oct 13, 2021
WebFreak001
Oct 13, 2021
russhy
October 12, 2021

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/arcspecific.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/outlinewidth.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/outlinewidth.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/outlinewidth.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/textspecific.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/textspecific.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/widgetspecific.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/widgetspecific.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/arcspecific.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/outlinewidth.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/outlinewidth.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/outlinewidth.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/outlinewidth.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/outlinewidth.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/outlinewidth.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/outlinewidth.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/outlinewidth.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/outlinewidth.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/outlinewidth.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/outlinewidth.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?

October 12, 2021

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..

October 12, 2021

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.

October 13, 2021

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)

	"repository":"https://github.com/your_github/tkd.git",
	"dependencies": {
		"tkd":  "~master" // or what ever version you want
	}
October 13, 2021
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
October 13, 2021

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

October 13, 2021
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.
October 15, 2021

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)

	"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.