I have been using Haxe for quite a number of years now, and one thing has frustrated me more and more. But first I want to talk about the good.
I love Haxelib! Being able to easily install and keep many great Haxe libraries up-to-date is amazing. Every time I open up an old AS3 project, I cringe at all the third-party libs that are checked into the projects repo.
The amount of open-source projects out there to learn from is amazing. It is always surprising to find examples and full projects that people have gladly put up on GitHub etc.
As great as all these examples are, it is super frustrating to find "the perfect" example that shows off a library feature, only to find that it was build 6 months ago, so is not updated for the very latest version of a Haxelib. I don't know how long I have spent fixing or upgrading other peoples projects locally to get them running with the latest version of a haxelib. Or trying to track down the exact version of a haxelib that the project is assuming. It is quite annoying to revert a haxelib, and have it revert for my other projects.
I realise it is probably better to update the project and make a pull request, but I am sure there is a better way. Especially if I just want to quickly see the end output of a project.
I think this is a valid problem, that I am sure others have come across and have thought about. I know Node.js installs libraries locally using NPM, unless given the -g param. They also have package.json, which contains a list and version numbers of all dependencies. So most of the time, you can download an example NodeJS projects, run npm install, and all dependencies are installed at the correct versions, and no other projects are affected. The dependencies folder (node_modules) is never committed to version control. Only the package.json is.
I don't really know a good solution for this problem with Haxe and haxelib, but seems like the kind of thing others like Node.js have solved a while ago.
I think it is critical to stop the code rot that is happening with open-source Haxe code out there on the web that newbies are getting there hands on. And even having a simple/standard way to say what version of each haxelib a project is built for would be a huge leap. Ideally, I want to just to a git clone of a project, run haxelib install, then run, and it should just run! Don't you think so too?
Cheers,
Adam