+-+-

+-User

Welcome, Guest.
Please login or register.
 
 
 
Forgot your password?

+-Stats ezBlock

Members
Total Members: 177
Latest: Tdotku1911
New This Month: 0
New This Week: 0
New Today: 0
Stats
Total Posts: 754
Total Topics: 366
Most Online Today: 3
Most Online Ever: 55
(May 13, 2020, 03:23:39 AM)
Users Online
Members: 0
Guests: 4
Total: 4

Please read this and weigh in - Issue/Source/Document Version Control System

Started by dracusmage, February 04, 2017, 07:23:04 PM

Previous topic - Next topic

dracusmage

I would like to propose that we move development/fixing these files to a proper version control system with real issue tracking and discussion possibilities.

It will make it easier to track issues people have and also to fix them - rather than bouncing through a forum. It would track progress on fixes and also have the ability to point to a released version that includes the fix.

The two ways to get this done are to use a system designed for code versioning or a project manager. A code versioning setup sometimes has issue tracking and discussion tacked on, but almost exclusively requires a tool to upload the files. I'm assuming there is a project manager out there that isn't catastrophically overbuilt for what we need, but the upside is that a good one will do file versioning with files that you can just upload using the web interface.

I'm currently playing with done setting up a CodePlex project https://hl4e.codeplex.com/ with a Git backend (a code versioning program with an almost ideal user interface). It's pretty easy, but not quite easy enough for me to acclaim it as the perfect setup. Downloading, issues, discussion, etc are all simple, but uploading code files requires the use of a Git control interface program and not all of the types of files are view-able (.dat files are just stored, you can't compare versions of them). Neither is the end of the world. Versioning in the fix requires a interface, but the ticket system allows files to be uploaded with comments, so as long as we have at least one person with an interface the code can be added, if not as rapidly as it being added when fixed. As far as the un-viewable file types goes, I'll probably push to add the .xml extensioin to all of the relevant files to make it easier to use, and wack together a (windows) script to trim it back off if someone wants to download the files without waiting for a release and doesn't want to manually remove the extra extension.

I've been looking around for a web host-able version that would allow for easy code commits, or even better, editing within the webpage itself, but mostly they want me to install them on a real server rather than just a hosting account. That's not a deal breaker - I'm the System Administrator for a few companies, so I have access to a half dozen fallow static IP address and old pieces of hardware that I can make into a physical server, I would just prefer not having to maintain the server myself, which is why I pay for web hosting in the first place.

dracusmage

I've also set up a GitLab environment https://gitlab.com/HeroLabAuthKit/4e/. GitLab doesn't need to be babysat to understand that the xml files are actually xml files (even when they are pretending to be .dat files or whatever), so it does the color styling for the code (and diff-ing new versions of the files). It's not my favorite color scheme, but I'm just happy it works without me fighting for it. It also as browser based file and folder creation/editing/deletion without the need for a Git client. The editing doesn't do the style coding, but again, just doing it at all is great. The biggest problem with it is that it does not have any sort of forum functionality - the only communication is through the issue tracker. That may not be the worst thing ever, because as it turns out, we already have a forum.

I prefer the look of the CodePlex site, but that doesn't matter much. I vastly prefer the fact that the GitLab interface reads the files correctly and the friendliness of not requiring a tool to upload fixes. Both of them require a user account to do any issue reporting and the like. With GitLab there is much more granular control, but I don't imagine we will need much by way of limits really due to the extremely low stakes in this.

GitLab also has the ability to automatically retrieve updates to the repository from CodePlex as well as to push updates to another Git server (like our CodePlex setup). So it is possible for someone to fork the CodePlex site over to a personal GitLab project, work on the file in a disconnected development branch, then automatically have that branch push the changes over to a personal CodePlex branch, and from there generate merges. I don't think that is worth the effort, but it could be done. The biggest problem with that is that the issue tracker isn't built into Git, so issues don't transfer over.

The more I think about it, the more I think just uploading fixes to the issue tickets in CodePlex is the best answer and relying on a couple people to actually merge them in every so often. I'm going to keep adding documentation to the CodePlex site because it's a handy place to keep it, and moving wiki markup to a new home if necessary isn't the most strenuous task.

Cryptoknight

I'm all for it... I put this whole mess into git a long time ago but I've since forgotten what git repository I used at the time.

If we can generate a monthly build... or a quarterly one, I can update the download spot so that everybody using HL and the 4e ruleset can get official updates.

Between life and work I haven't had time to try to fix HL 4e bugs anymore, but I could do this for the community.

dracusmage

If I can get buy-in to putting issues and fixes into a repository, or even just issues into an issue tracker and fixes as files in comments on an issue tracker, I'd be willing to commit at least 1 year to maintaining it and generating builds every month.

Our current system is ok, but I am not finding new problems that matter to me because I'm not playing. I'm willing to fix things still because I have such deep and worthless knowledge of this system, but I don't normally have that much time. If I could quickly get a list of issues that aren't fixed I could spend time fixing a problem instead of looking for a problem to fix that someone else might also be working on.

At one point in the past I was working on a large fix and a version of it got merged into an update. That meant that in order for me to keep working on it I needed to manually go though my files and track down the parts that merged and the parts that were still only offline. I believe what I actually did was to shrug and stop fixing them rather than get the last half dozen powers fixed; clearly not a the best way. Having a more regimented merge would prevent this from happening - I could still post a temporary fix for the person who has the problem, but keep it from being merged to the update until it's completed. (I'm not trying to attack you Cryptoknight - you did great work and I appreciate you getting this forum up and keeping it going, packages and all).

Paragon

I'll be happy to provide what fixes I already have, but they're not done in a particularly easy-to-explain fashion; for the most part all I've got listed is what particular item I did work on, not even what I did.

As to your more general question--to be honest, I don't understand the question well enough to answer it.  I'm a borderline coder at best, and have never actually participated in anything but small projects for my own purposes, so while I intellectually understand there are good and bad ways to run ones with multiple participants, I don't actually understand what those are or how they are done.  I just happen to be a not completely untalented amateur who has some conceptual understanding of what I'm doing, but no real training at all.

Fox Lee

I don't have much of an opinion on version control software - I've used it a few times, but not so much that I have preferences. As long as it doesn't cost money, I'll use whatever I have to, in order to contribute :p

As far as hosting our own version control goes, I can install Subversion repositories on my server without needing to go through the effort. I've done it for gamedev in the past, and everything seemed to work fine. However, it would be up to users to choose/install their own SVN software, so definitely not the friendliest way to handle it. But if it would be helpful, the option is there.

Either way, getting more real updates out there - instead of just "replace thing with fixed thing" user files - would be great! Maybe with a basic style guide too? (I'm always worried that my fixes are somehow not living up to some standard or other - my ever-present impostor syndrome, I guess.)

dracusmage

The fact that most of us are not really programmers is why I am even now working on an easier way if I can find one - if everyone was a programmer I would have just set up a Subversion repository and posted the url. In fact, setting up Subversion was the very first thing I did because it took me all of 1 minute total to do.

I'm only considering systems that either cost nothing or will cost nothing for anyone other than me. Adding a barrier to user participation is the worst thing we could do. Which is also why I've been trying to find some kind of non-terrible web based code editor that will do its own checking in and out of the files from a repo. I've not had much luck at my 0$/user/month price point.

This is why I keep looping back to CodePlex but revising the procedure. At this point I think it's going to be the best - the interface is not horrible, it has a great bug tracker that allows for files to be attached to comments, has a forum that we may or may not use, a wiki system for documentation, and a Git back-end for tracking code and submissions for the few that aren't turned off by the oblique ways of code control.

The only real downside of CodePlex is it's run by Microsoft, and our project kinda skirts the real purpose of the site. I'm pretty sure we are never going to be big enough to draw any hellfire anyway.

Anyone interested should go look at the site and make an account - if you ask to be part of the project over there I'll let you in so you can look around.

The other option that I've been toying with is a document version system. I've hot one of them running (poorly) on my web hosting. It has the upside of making submitting fixes extremely easy, and it tracks versions automatically and has a robust document submission flow where uploads can be approved before included, and so on. The problem with it is that it doesn't have an issue tracker built in. Setting up an issue tracker and a wiki to bring us back to the full ecosystem would work, but then require multiple logins.

If anyone has any alternative ideas I'm up for basically anything. I've looked at a lot of project management systems which are slightly closer to what we want, but are usually far more regimented than we are in this project and usually don't have a way for people without user accounts to access the files.

I'm also still looking for a really good shared hosting xml editor. A WYSIWYM with modifiable schema would be ideal, but mostly I've only found ones that don't work or cost $20 (or way way more) per person, so not really a valid option for a tiny hobbyist coding project.

I can also post all of my scattered detritus of testing if anyone is interested in seeing if I discarded an option that would really be perfect.

dracusmage

Gmail had very thoughtfully hidden all of the requests to join the project from me in my "Social" folder. Since I am extremely introverted, I ignore that folder like the plague, so I didn't see them. If you request access to the codeplex site I promise I will eventually notice, but if you want access more quickly, just comment in this thread and it will email me in a way that makes me notice.

Charlie

Okay, I'm in. What do you need to know, and where do I go to learn how to upload our modified files with all the bug fixes?

dracusmage

The longer I work on this, the more I'm just settling into using CodePlex to manage it. hl4e.codeplex.com is the site.

You will need to either sign in using an existing Microsoft Account or create a CodePlex account. After you are signed in, there is a link on the main page on the right to "Join Us" which will let you ask for permission to join the project. You do not have to do this. The only difference between "signed-in" and the base level of contributor is that you can edit wiki pages as a contributor. That's it. All the normal forking and commenting and everything else is the same.

If you have an account, you can access all of the source code files, you can create new issues and comment on existing ones, and view the documentation. If you create a fix for an issue, you can comment on that issue and attach the fix file. If you have a fix for an issue that doesn't have an issue created, just create an issue for it and upload your fix.

If you want to get into the actual code merge side of it, I would recommend you don't. It's scary and dark and full of silly things that coders think are good ideas that no one else in the world agrees with. This is also a code repository managed by a System Administrator (me) so I'm certain I'm not doing things "correctly" although it is working. If you think you still want to send fixes in using Git rather than uploading code to the issue tracker, I'm all for it because it will make my life easier.

You will again not need to join the project. Just fork the source code, then you can submit "Pull Requests" to the project from your fork, at which point we can test and approve the patch to integrate it into the system source code. I have basically no guidance to give you if you go this route - everything I know I figured out the hard way over the last month, and I'm certain it's worth every penny I spent on the lessons.

dracusmage

If you are going to try to actually join the "team" please go to this post and tell me who you are on CodePlex. You can also tell me who you are over here when you request permission to join over there, but I'm more likely to believe you if you use your account here to say who you are over there than vise versa.

Charlie

Done and done.

We have several modified files with months worth of bug fixes that we've done, but the change documentation is minimal because we didn't expect to have anyone else working on 4e. What's the best way to get what we have to you?

dracusmage

If you create an issue with a general idea of what you fixed and attach the fixes (even all as one chunk) I'll pick the threads apart and merge it in. I'm shooting for a new package to be done by the Ides.

If you made the fixes directly into the files, that's actually even easier for me because I can do a compare/merge between the two versions. If that's what you've done, just zip the modified files up and attach the zip. (The zip is to make sure it's under the upload limit, especially if any fixes are in the item file).

dracusmage

I said I was shooting for a March 15 update, but I've pushed it back a little because I'm hopeful there will be progress on a program level bug that I'm dealing with HL development on. If I don't hear anything soon (or else if I do hear something conclusive soon) I'll finish the patch.

Charlie


+-Recent Topics

4e wont open due to duplicate files error by Tdotku1911
September 28, 2023, 09:00:17 PM

Community Data files update 2023-02-16 by Tdotku1911
September 28, 2023, 08:52:54 PM

Errors from last update by jrmcnz
July 17, 2023, 03:30:56 PM

Community Data files update 2023-04-28 by Fox Lee
April 27, 2023, 09:40:45 PM

3rd Party - Zeitgeist character options by Fox Lee
March 25, 2023, 03:21:38 AM

Community Data files update 2023-03-25 by Fox Lee
March 25, 2023, 02:46:40 AM

Our Unofficial Update for Hero Lab 4e by jklagenberg
February 11, 2022, 09:00:52 AM

Kensei Focus - Paragon Path Feature by Charlie
October 21, 2020, 10:13:36 PM

Warlord Scraper Error Fixes by Fox Lee
April 03, 2020, 08:05:51 PM

Herolab 4e Themes Modification by Cryptoknight
July 27, 2019, 02:47:44 AM

Themes Collection by Cryptoknight
July 27, 2019, 02:47:44 AM

Feats Bug Fixes Package by Cryptoknight
July 27, 2019, 02:47:44 AM

Darksun Themes Package by Cryptoknight
July 27, 2019, 02:47:44 AM

Defensive Feats by Cryptoknight
July 27, 2019, 02:47:44 AM

Theme Framework for HeroLab 5 / 4e 4.0 - .HL version by Daphne
July 27, 2019, 02:47:44 AM

2014 09 20 Release by Cryptoknight
July 27, 2019, 02:47:44 AM

2014-09-29 Download by Cryptoknight
July 27, 2019, 02:47:43 AM

2014 11 13 Download by Cryptoknight
July 27, 2019, 02:47:43 AM

Hybrid Battlemind not working as it should by Sean Abel
July 27, 2019, 02:45:49 AM

Please read this and weigh in - Issue/Source/Document Version Control System by nixxrite
March 29, 2019, 07:14:36 AM

Items, Feats and Magic Armour calculations not working by Charlie
March 28, 2019, 01:13:14 PM

Ring Slots by Krigler
March 04, 2019, 06:38:29 AM

Invoker Damage stats by Charlie
September 08, 2018, 07:55:52 PM

Max hit points by Charlie
September 05, 2018, 10:05:12 PM

I have run into a problem with Power class types by Sean Abel
August 18, 2018, 11:43:05 PM

Powered by EzPortal