This is a read-only snapshot of the ComputerCraft forums, taken in April 2020.
com_kieffer's profile picture

Package Managers ?

Started by com_kieffer, 29 May 2015 - 01:43 PM
com_kieffer #1
Posted 29 May 2015 - 03:43 PM
I've been out of the CC scene for a while and I was wondering if there was any progress on the package management front.

Last time around I was using ac-get but it was (is?) very buggy and over-engineered which made actually fixing the bugs harder. Has anything better come along ?

I'd like something that doesn't require me to create an account. ac-get was nice because I could simply point it to a manifest file and I would be able to use my repo. Dependency mangement is a definite plus.
SquidDev #2
Posted 29 May 2015 - 04:08 PM
The only package manager I can think of off the top of my head is Packman. This has dependency management though the package list is limited (though you can always add custom repository lists which is a plus). There is also an App Store by DannySMc, though again this has a limited collection of apps. For better or for worse, pastebin is still the unofficial standard.
Edited on 29 May 2015 - 02:10 PM
Creator #3
Posted 29 May 2015 - 04:13 PM
You can use Compress to pack a folder into a single file though.
SquidDev #4
Posted 29 May 2015 - 04:17 PM
You can use Compress to pack a folder into a single file though.

And Grin, Packager and Compilr. we've made lots of progress in the realms of packaging files together and little in decent package managers. Maybe another couple of years later? Maybe? :P/>
Creator #5
Posted 29 May 2015 - 04:18 PM
Maybe, if we don't die from boredom.
SquidDev #6
Posted 29 May 2015 - 04:22 PM
Maybe, if we don't die from boredom.

Nah, there is plenty more to work on. We've got CC 1.8/Lua 5.2 to look forward to. Onwards and upwards I guess. The future awaits! Sorry, I'll stop sprouting clichés. I feel this is the most a thread has digressed in a while. Sorry. :(/>
Edited on 29 May 2015 - 02:22 PM
Creator #7
Posted 29 May 2015 - 04:26 PM
No need to be sorry. Actually, when talking about work, I am in the middle of two projects and kind of involved in a third one.
com_kieffer #8
Posted 29 May 2015 - 05:14 PM
Thanks for all the suggestions guys.

Unfortunately it doesn't look like there is anything out there that fits my needs.

Specifically (I forgot to mention this earlier) I need the tool to manage startup files. In ac-get you can specifiy files that will be run at startup. I also need to be able to run scripts once the install has finished.
Lyqyd #9
Posted 29 May 2015 - 08:11 PM
Packman does support install and removal scripts. It does not, however, make any attempt to alter or "manage" the startup file, as there is no sane way to do so that I've seen so far. Startup file management is left up to the user entirely.
com_kieffer #10
Posted 30 May 2015 - 10:18 AM
Packman does support install and removal scripts. It does not, however, make any attempt to alter or "manage" the startup file, as there is no sane way to do so that I've seen so far. Startup file management is left up to the user entirely.

Intersting.

I couldn't really find any documentation on how the package format works. Do you have anyting out there ?

The sanest way (IMHO) to do startup management is to not touch the startup file at all. ac-get avoids the problem by not letting you overwrite the startup file easily. It puts it own startup file in place and uses it to run the scripts in startup/ folder of each package.
Lyqyd #11
Posted 30 May 2015 - 07:14 PM
Yikes, I do need to better document it.

Essentially, packman fetches a file which contains a list of names and URLs. This is the list of repositories, and anyone can add their own by sending a pull request to that github repository. They just need to have a valid, static url that packman can fetch their package list from. A package list is simply that, a human-readable listing of information about every package that the repository offers. Each package listing must start with the name of the package, and must include a name, a (download) type, a version number, a non-zero size field, and a list of dependencies (if no dependencies, use 'none', see the LyqydNet package in the package list linked earlier). The version number is used for checking for new updates, and can be any steadily-increasing number you want (though currently restricted to numbers that can successfully tonumber()). The download methods that are available (and their required fields) are shown here. Examples of the raw, github, and pastebin download methods can be seen in the package list linked earlier.

And if you have any questions, feel free to ask either here, or in the Packman topic over in the Programs section!
com_kieffer #12
Posted 01 June 2015 - 11:02 AM
Yikes, I do need to better document it.

Going through your github that seems like something you ought to do for all of your projects. You have some really interesting stuff but the lack of instructions/readme makes it harder to understand how each piece is supposed to be used.

At the moment I'll keep on using ac-get. The startup management feature is really nice. I'll keep an eye on Packman though. It's a much cleaner system.

Thanks for taking the time to help out.
Lyqyd #13
Posted 02 June 2015 - 04:02 AM
I don't disagree! I did actually sit down and write some documentation for packman tonight. I'll try to set aside some time to document the other projects as I am able.