Tin

Tin is a Github-based Tcl package manager that I am working on: https://github.com/ambaker1/Tin


arjen - 2023-04-12 04:22:45

I like the idea and I have actually contemplating something similar. The main issue, I guess, is assembling a registry of packages (but I know that in general there is a lot more involved ;) - see the other initiatives that exist or have existed at some time). Why not use a Wiki page to allow people to populate that registry with their favourites. Your package manager requires a minimum of configuration (mainly a file to install the right files and a github repository), so if that information is put into a Wiki page (with a similar minimal markup), then it would be easy to find them. And easy for people to contribute to.


AMB - 2023-09-08 23:27:21

Thanks! I thought about this, and with version 1.0, what you mentioned is entirely possible. For example, if you created a package/repository called "foobar", and you wanted to share it, you could just have people run this code:

package require tin
tin add -auto foobar https://github.com/username/foobar InstallFooBar.tcl
tin save

This will add the installation instructions to the Tin List, and save it to a local configuration file on your machine.


AMB - 2023-10-19 17:48:15

I decided to make Tin a lot more lightweight. Version 1.1 only has packages "Tin", "wob", and "flytrap" automatically included in the Tin list, to demonstrate how dependencies work. Other packages can be easily included with a "tin add" command.


AMB - 2025-02-09 02:16:50

Version 2.0 (https://github.com/ambaker1/Tin/releases/tag/v2.0 ) eliminates the pre-packaged list of package installation, and simplifies the architecture behind automatically populating installation instructions from repository release tags. For example, to install the package "ndlist", the following code can be copied into a Tcl interpreter:

package require tin 2.0
tin autoadd ndlist https://github.com/ambaker1/ndlist install.tcl
tin import ndlist

This new version of Tin should be more flexible for your package ecosystem needs.