How about using GIT for modules

Have a thought on how NESmaker can be improved? We are a small team with limited means, but we'd love to hear your ideas!
Post Reply
deepThought
Posts: 5
Joined: Thu Sep 06, 2018 4:17 pm

How about using GIT for modules

Post by deepThought » Thu Sep 06, 2018 8:10 pm

Hello guys, I'm new on the forum (will take time to present myself a bit later).
As a dev, I'm pretty used to manage my software with versionning tools like GIT.
Since I see lots of fixes/mods here and there on the forum, I think it'd be great to provide each engine/module it's own repository on github so everyone could fork those modules, share their fixes/enhancements, submit pull requests and issues.

Honestly, I don't get why it's not done already (unless I missed it somewhere) since this kind of tool is so useful once you get used to it, you can access the log of each commit, export the repo in a zip file (useful since in 4.0.12 you can import/export zip files), branch the software into dev/alternate branches which gives you the ability to merge the modifications into the distributed branch (master) without breaking anything or even roll back in case of any mistake.

Since the modules could already be downloaded freely, I don't see any reason why not to share them on github or any gitlab out there.

Well, I hope you get the point, like that, the dev team could focus more on the NESm app and the community could debug/upgrade most of the different modules at the same time.
I'm pretty sure there are some asm gurus hiding somewhere nearby eager to share their knowledge in an easier way than posting code which will get lost in old forum posts.

Anyway guys, that my suggestion, do not hesitate to ask for help or more details about GIT, it seems like @cornphillips is also used to work with GIT so I'm sure him, me or somebody else will be glad to answer your questions. With all the details (github account, files hierarchy, some things I don't have in mind atm) it could be done in a few minutes, so I'll be glad to do it for you if needed.
User avatar
Mihoshi20
Posts: 417
Joined: Tue Mar 06, 2018 11:47 pm

Re: How about using GIT for modules

Post by Mihoshi20 » Fri Sep 07, 2018 12:44 am

deepThought wrote:
Thu Sep 06, 2018 8:10 pm
Hello guys, I'm new on the forum (will take time to present myself a bit later).
As a dev, I'm pretty used to manage my software with versionning tools like GIT.
Since I see lots of fixes/mods here and there on the forum, I think it'd be great to provide each engine/module it's own repository on github so everyone could fork those modules, share their fixes/enhancements, submit pull requests and issues.

Honestly, I don't get why it's not done already (unless I missed it somewhere) since this kind of tool is so useful once you get used to it, you can access the log of each commit, export the repo in a zip file (useful since in 4.0.12 you can import/export zip files), branch the software into dev/alternate branches which gives you the ability to merge the modifications into the distributed branch (master) without breaking anything or even roll back in case of any mistake.

Since the modules could already be downloaded freely, I don't see any reason why not to share them on github or any gitlab out there.

Well, I hope you get the point, like that, the dev team could focus more on the NESm app and the community could debug/upgrade most of the different modules at the same time.
I'm pretty sure there are some asm gurus hiding somewhere nearby eager to share their knowledge in an easier way than posting code which will get lost in old forum posts.

Anyway guys, that my suggestion, do not hesitate to ask for help or more details about GIT, it seems like @cornphillips is also used to work with GIT so I'm sure him, me or somebody else will be glad to answer your questions. With all the details (github account, files hierarchy, some things I don't have in mind atm) it could be done in a few minutes, so I'll be glad to do it for you if needed.
Personally I don't find the current method all that tedious. Copying a game project over to the new version is the most annoying part but going to the site and downloading the new version then unzipping it is absolutely effortless. I'm not opposed to those users who enjoy the GitHub experience, least for now until Microsoft's taint seeps into it as it does all the projects and services they 'acquire' then slowly poison to try and stave off their irrelevance. personally, I just find it an over complication of something that is supposed to be accessible by the general public which include less tech savvy users. If anything NESmaker needs a way of auto-updating itself.
deepThought
Posts: 5
Joined: Thu Sep 06, 2018 4:17 pm

Re: How about using GIT for modules

Post by deepThought » Fri Sep 07, 2018 4:56 pm

The suggestion was more about GIT itself than github, I've nothing against a private gitlab or something, I just presented it as it's the most popular one, by using GIT, you pretty much manage everything like usual, you just commit/push your mods once you get happy with it or you don't use it at all since it's just a way to manage code, nothing mandatory :
- You fork (first time only) & pull (update) the project (git pull http://...)
- Do your debug/mods as usual
- Save your modified files (git add -A)
- Put a message on the commit (git -m "Debugged Jump framework...")
- Push the mods to the platform (git push)
And that's it... takes a little time to get used to it, and once done you pretty much use it everytime you can, I personally manage all my company customers' files with it, even my personal files so I know when, by whom and what happened at any point in time and it allows my coworkers and I to work on the same files at the same time without any problem.
It's ultra practical, you should give it a try, it's nothing but logic more than over complication.
No more "Sh*t, it was working two days ago, I changed so much things since then, what've I done wrong", now you can check the diff(erential) and "Ohh, thank god we used GIT, would've taken weeks to debug"
Again, I don't promote github (sry for the misunderstanding if there was one), it's all about the tool, not the platform, I've been working on Linux for 15 years or so, so you can understand that I also don't support Microsoft's actions at all (cr*ppy OS and products if you ask me...), even had to install "MS Window$" to try NESmaker (which is pretty sad, since everything else I need works just fine under Linux).
This tool is highly adapted for many people to work on large projects.
If you don't like it, nobody will force you, it's a totally optional way to deal with code, but fetching breadcrumbs on the forum isn't (imho) an efficient way to keep track of a project.

In brief : - GIT allows you to develop quickly and efficiently
- To share snippets of code (according you're using github/gitlab)
- To try out multiple versions of your code
- To revert files (or the whole project) to any previous state
- To clearly compare changes over time
- To keep every version of the files you commited
- Again, it's totally optional, just do as it pleases you

There is such thing as a "github experience", there are just good practices in terms of dev and a good VCS would be a basic step toward a long-living project.
Please guys don't deprive us from such tools unless there's a good reason to do so, it'd be a shame to not get the best out of the existing software for a project like this.

Long live NESmaker.
User avatar
Mihoshi20
Posts: 417
Joined: Tue Mar 06, 2018 11:47 pm

Re: How about using GIT for modules

Post by Mihoshi20 » Sat Sep 08, 2018 4:52 am

deepThought wrote:
Fri Sep 07, 2018 4:56 pm
The suggestion was more about GIT itself than github, I've nothing against a private gitlab or something, I just presented it as it's the most popular one, by using GIT, you pretty much manage everything like usual, you just commit/push your mods once you get happy with it or you don't use it at all since it's just a way to manage code, nothing mandatory :
- You fork (first time only) & pull (update) the project (git pull http://...)
- Do your debug/mods as usual
- Save your modified files (git add -A)
- Put a message on the commit (git -m "Debugged Jump framework...")
- Push the mods to the platform (git push)
And that's it... takes a little time to get used to it, and once done you pretty much use it everytime you can, I personally manage all my company customers' files with it, even my personal files so I know when, by whom and what happened at any point in time and it allows my coworkers and I to work on the same files at the same time without any problem.
It's ultra practical, you should give it a try, it's nothing but logic more than over complication.
No more "Sh*t, it was working two days ago, I changed so much things since then, what've I done wrong", now you can check the diff(erential) and "Ohh, thank god we used GIT, would've taken weeks to debug"
Again, I don't promote github (sry for the misunderstanding if there was one), it's all about the tool, not the platform, I've been working on Linux for 15 years or so, so you can understand that I also don't support Microsoft's actions at all (cr*ppy OS and products if you ask me...), even had to install "MS Window$" to try NESmaker (which is pretty sad, since everything else I need works just fine under Linux).
This tool is highly adapted for many people to work on large projects.
If you don't like it, nobody will force you, it's a totally optional way to deal with code, but fetching breadcrumbs on the forum isn't (imho) an efficient way to keep track of a project.

In brief : - GIT allows you to develop quickly and efficiently
- To share snippets of code (according you're using github/gitlab)
- To try out multiple versions of your code
- To revert files (or the whole project) to any previous state
- To clearly compare changes over time
- To keep every version of the files you commited
- Again, it's totally optional, just do as it pleases you

There is such thing as a "github experience", there are just good practices in terms of dev and a good VCS would be a basic step toward a long-living project.
Please guys don't deprive us from such tools unless there's a good reason to do so, it'd be a shame to not get the best out of the existing software for a project like this.

Long live NESmaker.
Anything that makes upgrades between NESmaker versions more automated and streamlined I'm all for, though I don't have any issues with the current method and I think they're streamlining that. If I can just unzip the new exe and drop it into my current project and be good to go. I'm happy. But I won't knock any other method that is convenient.
User avatar
freepupet
Posts: 6
Joined: Fri Aug 10, 2018 1:31 am

Re: How about using GIT for modules

Post by freepupet » Sun Sep 09, 2018 12:22 am

I personally would just like a generic module download system from the 8 bit heroes main page. i personally cant stand git. but i'm much less of a programmer than most.
deepThought
Posts: 5
Joined: Thu Sep 06, 2018 4:17 pm

Re: How about using GIT for modules

Post by deepThought » Sun Sep 09, 2018 4:38 pm

Ok ok, seems like nobody's getting the point here, a good VCS should be transparent to anybody who can't/do not want to deal with it.
Won't come up with this one anymore.
Can't wait to see how of a mess it'll be in a couple years when each dev will have his own modded version of each module and when there will be unsustainable code all over the place on the forum.
I'll just sadly be there "told you... even wanted to work on it for you guys".
freepupet wrote:
Sun Sep 09, 2018 12:22 am
I personally would just like a generic module download system from the 8 bit heroes main page. i personally cant stand git. but i'm much less of a programmer than most.
I couldn't stand English people before I started learn to speak with them, now I love to be able to interact with everybody, what's the point ? I was just lazy back then, then I learned and turned out that I love it, same thing with GIT, JS, C++ and everything else...
Starting to ask myself if there's any serious people here we could've a real debate with.
Thought we'd all work together, not hack bits and pieces.
In brief, all I can see is, well "To complicated (which is wrong); Can't stand it (without any argument); Hum, don't like it (without any clue how it works)".
I get it, lots of people are newbies in here (no offense, anyone is in some way, I'm a pretty big one on 6502), but it shouldn't prevent you to make wise choices.
By adopting that viewpoint you could just say "I'd rather paint a bunch of mammoths on the cave wall than invent tools to eat them" and we'd still be living in caves eating berries like they did something like 10k years back or so.
Well, at this point I'd rather work on some code, good advices don't seem welcome in here and that's killing me.

I'd be happy to answer anyone here later but please guys, give us some meat, I'm trying my best to be clear and all I get is "I call it BS" which is way out of bound regarding productivity.
User avatar
Mihoshi20
Posts: 417
Joined: Tue Mar 06, 2018 11:47 pm

Re: How about using GIT for modules

Post by Mihoshi20 » Mon Sep 10, 2018 12:21 pm

deepThought wrote:
Sun Sep 09, 2018 4:38 pm
Ok ok, seems like nobody's getting the point here, a good VCS should be transparent to anybody who can't/do not want to deal with it.
Won't come up with this one anymore.
Can't wait to see how of a mess it'll be in a couple years when each dev will have his own modded version of each module and when there will be unsustainable code all over the place on the forum.
I'll just sadly be there "told you... even wanted to work on it for you guys".
freepupet wrote:
Sun Sep 09, 2018 12:22 am
I personally would just like a generic module download system from the 8 bit heroes main page. i personally cant stand git. but i'm much less of a programmer than most.
I couldn't stand English people before I started learn to speak with them, now I love to be able to interact with everybody, what's the point ? I was just lazy back then, then I learned and turned out that I love it, same thing with GIT, JS, C++ and everything else...
Starting to ask myself if there's any serious people here we could've a real debate with.
Thought we'd all work together, not hack bits and pieces.
In brief, all I can see is, well "To complicated (which is wrong); Can't stand it (without any argument); Hum, don't like it (without any clue how it works)".
I get it, lots of people are newbies in here (no offense, anyone is in some way, I'm a pretty big one on 6502), but it shouldn't prevent you to make wise choices.
By adopting that viewpoint you could just say "I'd rather paint a bunch of mammoths on the cave wall than invent tools to eat them" and we'd still be living in caves eating berries like they did something like 10k years back or so.
Well, at this point I'd rather work on some code, good advices don't seem welcome in here and that's killing me.

I'd be happy to answer anyone here later but please guys, give us some meat, I'm trying my best to be clear and all I get is "I call it BS" which is way out of bound regarding productivity.
I think i'm a bit more on the same page with you here in that you don't want to make a repository for NESMaker itself, but more for the ASM code in the engine and when people change it. Though I'm not sure how beneficial this would be. If it's just an isolated ASM file like say diagmov.asm for the input editor to handle diagonal movement that probably has universal appeal but if say they make a change to Powerup_UnlockProjectile.asm that may only apply to their specific game and not work universally for everyone's games. Worse yet, make critical changes to AssignBanks.asm which I often do. Someone replacing their AssignBanks,asm would break their entire game.

I'm rather interested in what it is specifically you're wanting to do, what the benefits you're trying to put forward are, and how it relates to the way NESMaker works as a whole or in part as it's not a normal dev environment or codebase considering there are the NESMaker program files itself most of which only the exe is changed, the elements NESMaker changes like converting the bmp files to chr files and the entries it makes in some of the asm files, and the underlying 6502 assembly files that comprise the engine.
Post Reply