-
Notifications
You must be signed in to change notification settings - Fork 1
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
75$ - Haxe - Fix HMM git bullshit #1
Comments
let me retry some things, might be with specific repos, might even be OS specific (I use windows, I believe the issue also happens on Mac as well, which I will test too) and it looks like you're using Linux of some sort! |
Ahh, actually I figured it out, what I had before was actually a misinterpretation of the issue we were having. Changing the commit DID work. It was actually changing the REMOTE that should be weird / work unintended. I'll update the main post in a sec, but ACTUALLY the issue was: say we are on branch |
On Windows, I just prefer Git Bash, so here's to hoping that we won't encounter issues based on preferred software lol
Gotcha. I'll play around with that as well to see if I can get it to work (break). |
Alright, I see the issue in hmm's implementation, they don't check the remote at all. I'll confirm this behavior myself and then probably implement a quick fix. EDIT: On second thought, that isn't an exact solution. Need to figure out why it can't realize it's out-of-date based on the commit alone. |
Looking at the responsible code, I can't work out a situation where this code would fail and completely ignore updating a repo. Do your CI runs have any logs to go off of or anything? Could also try making a minimal reproducible repo or archive to test with as well. I could try making a quick patch anyway that checks the remote, but I cannot reproduce this issue myself. It may help regardless, though. Footnotes
|
Yeah I think I have a small repo, I'll toss it up / make it public in a sec, eating dinner right now teehee |
Sounds good, just ate as well lol |
Alright well I think I have something working on a fork, |
Does it work if you switch from |
figuring out closer to what it is if you change the file name in the hmm.json file directly, it doesn't seem to register it in between compiles, i changed the flixel in fact, I can change it to anything, even busted gits that dont exist |
Could you try with my fork ( Also I think I've worked out the issue behind this - since you don't change the ref, it doesn't trigger an update. As I established earlier, hmm was completely ignoring the URL value when checking for updates. My fork resolves this, so it would work as expected now. Since upstream hmm doesn't check for changes in the URL, the ref value not changing basically indicates that nothing has changed to it. Updates would only be triggered if the branch doesn't exist or the commit doesn't exist (which there may be some cases of, but that isn't super common when dealing with forks). |
Nice seems to work and be fixed! I tossed you a friend request on discord to discuss payment shenanigans, if not, toss me an email (linked on my github) I will mark this as CLOSED!!! Good shit! |
also maybe you can toss a PR to the hmm main library see how that goes heheh |
Introductory Information:
hmm is a small helper for haxelib that allows you to specify, install, and update project dependencies using lib.haxe.org libraries, git, mercurial, or dev (local path reference) libraries.
This exists because haxelib does not yet support specifying git, mercurial, or other non haxelib-based project dependencies in the haxelib.json, .hxml, etc. files.
We use this in Friday Night Funkin' to allow for easier swapping of branches that may potentially require slightly different lib versions, as well as the CI type bullshit where it can easily install things with a script, and it downloads all the exact correct versions.
hmm has a feature where you can get haxelib bullshit from git
hmm git [library]
and thenhmm lock
that version. That will spit out a git ref into the hmm.json file. hmm also has a feature where you can callhmm reinstall
and it will run through everything in hmm.json, and if your currently installed versions don't match the hmm.json versions, it will reinstall it. This is especially helpful when switching branches, where you can often have slightly different versions of things.However, that shit is busted when you install from a specific git ref. When you attempt to reinstall / update a git based hmm.json listing, it won't properly update to whatever ref you have set in the hmm.json. You need to force reinstall using
hmm reinstall -f
, which would either redownload every haxelib, unless you specify the libraryhmm reinstall -f flixel hscript
.The Project:
Make it so when you call
hmm reinstall
it properly goes through and checks the git refs, and reinstalls if the git refs of the currently downloaded haxelib don't match the git commit refs of the hmm.json file.Prerequisites:
hmm is written in Haxe, so you'll need to know your way around it and the weirdo command aspects of it. Also you knowing your way around GIT COMMAND bullshit as well as haxelib knowhow. Seems like hmm is pretty straight forward in it's code, so if you're generally decent at Haxe, I don't see it being too trivial!
How Much Can ninjamuffin Help?
Budget/Timeline:
My dipshit estimate is that this can probably be done in a short afternoon or so. I just am too lazy lol! I really mean it when I say it seems straightforward! But also I am naive. Currently have 75$ USD allocated, but can prob toss you bit more if it takes longer than an hour or two.
No rush or timeline on this though, it's a pretty quality of life feature!
The text was updated successfully, but these errors were encountered: