forcegaia
0/0 Germ
Posts: 14
Favorite Card: Rafiq of the Many
Favorite Set: Return to Ravnica
Color Alignment: Blue, Red
|
Post by forcegaia on May 28, 2018 10:50:25 GMT
So I'm a dev by trade myself, and I've dabbled in template alteration myself. But I'd like to have a go with the main source code myself.
The issue I have is that it's using SVN (i use git mainly) and the main repo of code isn't geared towards collaboration, as I can't seem to see the 2.0.1 code in there, and I'd like to be able to show any edits I make for review and potentially incorporating into the main code.
Would there be any benefit from moving the code over to a better platform to aid collaboration and bug fixing, and perhaps switching to git. I'm mainly thinking Github, as it has issue tracking, a better UI, pull requests, forking, and more. But it is git-based instead of SVN.
What do the devs think of this?
|
|
|
Post by cajun on May 28, 2018 14:15:44 GMT
What do the devs think of this? The devs have been gone for years.
|
|
forcegaia
0/0 Germ
Posts: 14
Favorite Card: Rafiq of the Many
Favorite Set: Return to Ravnica
Color Alignment: Blue, Red
|
Post by forcegaia on May 29, 2018 0:36:58 GMT
The devs have been gone for years. So the person that made 2.0.1 was a ghost then? If there are no official devs left, then why not create a new team. I'm meaning those with a mind to actually get this started again, as I'm obviously not the only one. I'd like to get the individual who made 2.0.1 involved, as I gather they're an admin of these boards.
|
|
|
Post by cajun on May 29, 2018 1:00:02 GMT
So the person that made 2.0.1 was a ghost then? If there are no official devs left, then why not create a new team. I'm meaning those with a mind to actually get this started again, as I'm obviously not the only one. I'd like to get the individual who made 2.0.1 involved, as I gather they're an admin of these boards. I mean kinda. They tend to pop up whenever and disappear for long stretches. I know you can find them as Aurora#7346 on Discord, but dunno where else they're at. Not an admin of this forum, or even a member as far as I know.
|
|
ruien
0/0 Germ
Posts: 26
Favorite Card: Shifting Sky
Favorite Set: Eldritch Moon
Color Alignment: White, Blue, Colorless
|
Post by ruien on May 29, 2018 1:05:55 GMT
This project should most certainly be on github. (or even if it's not, it still should be migrated to git). I myself had to include a slight patch to the code as part of instructions I wrote recently in the Building from Source thread.
I know that someone named msoucy has actually forked this project and moved it to cmake and put it on github. However, I don't really see a big advantage to cmake since automake seems to just work. It might help the Windows build process -- this I'm not sure of, though, since I only run linux. I also believe his fork doesn't merge in the 2.0.1 update.
If we ignore msoucy's cmake adaptation, then I think this project should be moved to a new account under Github. Perhaps cajun or one of the other admins of this board could create a MagicSetEditor github account, so that it doesn't look like an unrelated fork. Since the code base has barely been touched in so long, it's probably fine to start with the current 2.0.1 state as an initial git commit, rather than importing the full SVN history, if that would make things any easier.
I wouldn't have a lot of time to contribute to the code base, but I'd like to get those couple of fixes pushed in because the source in its current state doesn't even compile under GCC 5.4. If we can put together a Windows build procedure (presumably under msys?) it would help test contributions before they're merged in as well. Ultimately, getting this into github would be a good idea and promote contributions from people who currently are willing but unable to assist.
Anyway, if this project is ever to come to life, it absolutely should be in git and on Github - so let's do that. If none of the board admins are interested in creating the Github page or managing pull requests, I could do it.
|
|
forcegaia
0/0 Germ
Posts: 14
Favorite Card: Rafiq of the Many
Favorite Set: Return to Ravnica
Color Alignment: Blue, Red
|
Post by forcegaia on May 29, 2018 23:51:23 GMT
I know that someone named msoucy has actually forked this project and moved it to cmake and put it on github. However, I don't really see a big advantage to cmake since automake seems to just work. It might help the Windows build process -- this I'm not sure of, though, since I only run linux. I also believe his fork doesn't merge in the 2.0.1 update. If we ignore msoucy's cmake adaptation, then I think this project should be moved to a new account under Github. Perhaps cajun or one of the other admins of this board could create a MagicSetEditor github account, so that it doesn't look like an unrelated fork. Since the code base has barely been touched in so long, it's probably fine to start with the current 2.0.1 state as an initial git commit, rather than importing the full SVN history, if that would make things any easier. I wouldn't have a lot of time to contribute to the code base, but I'd like to get those couple of fixes pushed in because the source in its current state doesn't even compile under GCC 5.4. If we can put together a Windows build procedure (presumably under msys?) it would help test contributions before they're merged in as well. Ultimately, getting this into github would be a good idea and promote contributions from people who currently are willing but unable to assist. Anyway, if this project is ever to come to life, it absolutely should be in git and on Github - so let's do that. If none of the board admins are interested in creating the Github page or managing pull requests, I could do it. Cmake would help building under any OS, as it would mean less screwing around on a command line for those that use windows, and it would allow an IDE project to be set up easily If anyone would make a repo and deem it "the one" I'll contribute bits to it when I can. I needed a project i can get my teeth into outside of work.
|
|
forcegaia
0/0 Germ
Posts: 14
Favorite Card: Rafiq of the Many
Favorite Set: Return to Ravnica
Color Alignment: Blue, Red
|
Post by forcegaia on Aug 5, 2018 0:46:44 GMT
I was wondering why I'd not had any pings on this, i still don't think I've got following set up right, but then there was no responses.
Is there anyone else interested in doing this?
|
|
forcegaia
0/0 Germ
Posts: 14
Favorite Card: Rafiq of the Many
Favorite Set: Return to Ravnica
Color Alignment: Blue, Red
|
Post by forcegaia on Aug 25, 2018 0:01:21 GMT
Just an update, I have downloaded the latest snapshot, and am planning to github this in the near future. It seems to have Visual studio projects there already, although they will be upgraded to use Visual Studio Community 2017 (or ripped out for Cmake) My task list is as follows - Commit the snapshot as-is to a git repo (without all the svn garbage - trunk only as the date on the branches is earlier than the trunk).
- Repo will be initialised for Git-flow to aid development lifecycle
- Swap system to use Cmake to aid multiplatform development (personally I'm a windows Dev, I would need a lot of help with reviving the linux side of things. I don't own a Mac so there's no hope of porting there yet, although it is a hope)
- Merge in whatever was done for 2.0.1
- Decide what else needs done going forward
|
|
Fenhl
0/0 Germ
Posts: 7
Favorite Card: Dryad Arbor
Favorite Set: Conspiracy
Color Alignment: White, Blue
|
Post by Fenhl on Sept 5, 2018 15:36:33 GMT
|
|
bagz
1/1 Squirrel
Posts: 91
|
Post by bagz on Sept 5, 2018 18:16:27 GMT
I'm no C++ wizard but I can hack my way around a bit. I'd be open to helping but I don't have the skills to develop alone.
|
|
forcegaia
0/0 Germ
Posts: 14
Favorite Card: Rafiq of the Many
Favorite Set: Return to Ravnica
Color Alignment: Blue, Red
|
Post by forcegaia on Sept 9, 2018 16:11:29 GMT
Fenhl thanks for the link. I'll tkae a look and merge the contents of that into the new repo I've made bagz "hacking around" wouldn't really be appreciated, as I'll be doing a code cleanup so would like the codebase to stay maintainable one i'm done. But you could use this as an opportunity to learn and improve your C++; as there's always something to gain by code reviewing, or you could attempt fixes and get feedback. I do C++ in my day-job, with a dose of many other languages. I'm no wizard, and this will be my first major project outside of uni and work, so I'll be using it to develop my skills as well. I intend for this to be very feedback-driven where everyone can learn bits form code review.
|
|
forcegaia
0/0 Germ
Posts: 14
Favorite Card: Rafiq of the Many
Favorite Set: Return to Ravnica
Color Alignment: Blue, Red
|
Post by forcegaia on Sept 9, 2018 19:19:46 GMT
I've had a look at the repo, and i may just end up forking that and starting from there. the only issue i see is that there were changes on the main snv trunk that didn't get inot the 2.0.1 codebase (which makes me wonder if there was any feature/fix loss between 2.0.1 and 2.0) plus i'm finding references to 2.0.1 in the trunk code as it is. So I'm going to pick through the code from this repo, and the svn trunk branch, and see about merging bits together. I've also shot an email to Lymia about her fork to see what she thinks and what she would recommend.
|
|
|
Post by cajun on Sept 9, 2018 21:27:36 GMT
I know of at least one feature loss in 2.0.1: The Add Cards button used to have a dropdown for Add Multiple Cards with a menu of options. This is still available from the Cards toolbar but not from the ribbon button.
|
|
bagz
1/1 Squirrel
Posts: 91
|
Post by bagz on Sept 10, 2018 15:15:36 GMT
Fenhl thanks for the link. I'll tkae a look and merge the contents of that into the new repo I've made bagz "hacking around" wouldn't really be appreciated, as I'll be doing a code cleanup so would like the codebase to stay maintainable one i'm done. But you could use this as an opportunity to learn and improve your C++; as there's always something to gain by code reviewing, or you could attempt fixes and get feedback. I do C++ in my day-job, with a dose of many other languages. I'm no wizard, and this will be my first major project outside of uni and work, so I'll be using it to develop my skills as well. I intend for this to be very feedback-driven where everyone can learn bits form code review. Ha! That is more then fair! I'm learning JS for front/backend so C++ is not my wheelhouse at all, but I learned a fair amount about structure/compiling/etc with some cryptocurrency projects I contributed to.
|
|
forcegaia
0/0 Germ
Posts: 14
Favorite Card: Rafiq of the Many
Favorite Set: Return to Ravnica
Color Alignment: Blue, Red
|
Post by forcegaia on Sept 10, 2018 22:45:34 GMT
I know of at least one feature loss in 2.0.1: The Add Cards button used to have a dropdown for Add Multiple Cards with a menu of options. This is still available from the Cards toolbar but not from the ribbon button. Hmm, i'll have a look at that. It should be fairly easy to find in the code disparity
|
|
Hâlian
0/0 Germ
.
Posts: 18
Favorite Card: Marwyn, the Nurturer
Favorite Set: Future Sight
Color Alignment: Green
|
Post by Hâlian on Sept 12, 2018 0:37:23 GMT
I'm all for updating MSE's codebase.
|
|
forcegaia
0/0 Germ
Posts: 14
Favorite Card: Rafiq of the Many
Favorite Set: Return to Ravnica
Color Alignment: Blue, Red
|
Post by forcegaia on Sept 23, 2018 22:35:07 GMT
just an update: Been a mix of busy, apathetic, and having too many games come out at once. But i have given the code a bit of a look over. I'm still making a decision on which codebase to use: base svn trunk, or lymia's 2.0.1. My first issue either way is i don't know much about the framework it uses. wxWidgets is totally new territory for me, and i'm going to have to do a lot of reading in order to comprehend any of it, as it looks and seems to act very differently to the frameworks i know (winforms, win32, Qt, android activities) One black mark against the svn trunk is it's age. Visual studio 2017 almost balked at the over 10-year-old solution format. However, in Lymia's fork, the solution project files don't exist, and she's put a lot into the make files, which points to one of two things: the more likely one is she's from a linux background and eschews the GUI approach of visual studio as i saw a lot of mentions of mingW32, the other option is that she did what cmakes does, but manually, and uses a solution that allows GUI project use outside the repo So that pushes CMake up the todo list, and i've never created a project with cmake either. (I've built with it, using a project someone else made, and that's open source so i can look at that and learn from it) My thoughts at the moment are to base the fresh codebase on lymia's 2.0.1 fork. This would allow us to keep the history, including all the older svn stuff, for reference, while including a lot of the build fixes that have been applied (as i expect that modern compilers didn't like the old codebase). This would mean the plan changes to this: - Fork and pull Lymia's repo.
- Initialise the point I start at for Git-flow to aid development lifecycle
- Figure out how the current build system works - i suspect cygwin is heavily involved.
- Swap system to use Cmake to aid multiplatform development, and save my sanity by allowing me to use visual studio or eclipse
- Merge in whatever features were lost when development diverged.
- Decide what else needs done going forward
One thing that will be high on the to-do (or at least the to-discuss) list, will be stripping out all the code that remains to support older out-of-support operating systems. As rather early in the code there's a check based on an older 9x/ME supporting build. On this topic I'd drop support for anything prior to Windows 7 (with a major fix being that it should check if it needs to elevate permissions properly), with cutoffs for other operating systems up for debate.
|
|
ruien
0/0 Germ
Posts: 26
Favorite Card: Shifting Sky
Favorite Set: Eldritch Moon
Color Alignment: White, Blue, Colorless
|
Post by ruien on Oct 6, 2018 14:34:44 GMT
I don't see the appeal of working off of lymia's fork. The code doesn't even configure out-of-the-box because it's missing the `--with-boost` configure option.
My opinion is that there's nothing fundamentally wrong with the main code tree on sourceforge - the only real issue is that it's an old codebase and operates on some outdated dependencies. For instance, to build on a modern Ubuntu system, you have to manually compile wxWidgets 2.8 because the repos ship 3.0, and it's the same story for Boost.
So, I think the focus would be more to modernize the codebase so it just builds against dependencies provided on modern systems. You could overhaul the whole build system (to cmake) but the advantages of doing so elude me. Isn't building under mingw standard for Windows?
As for text editor / IDE, I think you should be able to use whichever you want, and it shouldn't have any bearing whatsoever on the code in the repo. Something seems fundamentally wrong if your editor is adding cruft to the codebase.
|
|
forcegaia
0/0 Germ
Posts: 14
Favorite Card: Rafiq of the Many
Favorite Set: Return to Ravnica
Color Alignment: Blue, Red
|
Post by forcegaia on Oct 17, 2018 10:13:26 GMT
I don't see the appeal of working off of lymia's fork. The code doesn't even configure out-of-the-box because it's missing the `--with-boost` configure option.
My opinion is that there's nothing fundamentally wrong with the main code tree on sourceforge - the only real issue is that it's an old codebase and operates on some outdated dependencies. For instance, to build on a modern Ubuntu system, you have to manually compile wxWidgets 2.8 because the repos ship 3.0, and it's the same story for Boost.
So, I think the focus would be more to modernize the codebase so it just builds against dependencies provided on modern systems. You could overhaul the whole build system (to cmake) but the advantages of doing so elude me. Isn't building under mingw standard for Windows?
As for text editor / IDE, I think you should be able to use whichever you want, and it shouldn't have any bearing whatsoever on the code in the repo. Something seems fundamentally wrong if your editor is adding cruft to the codebase.
When you put it that way, i agree with using the base repo. it also means I don't have to pick through feature loss and reinstate it. Windows has no "standard" way of building anything. It comes with no build tools as standard, and it's not common practice for the average user to build source code. If you were to ask "what is the most native way?" i'd answer using the VC++ compiler that you can get from MS for free, and the most all-in-one way is to use visual studio. That's not to say it's bad to build with any other compiler, but i may go as far as to say using mingw is probably the LEAST standard way, as it's practically forcing linux-like ways into windows. Again, not saying it's bad to do (in fact it's super useful), but "standard" is not the word I'd use to describe it. The idea behind CMake is it would allow for any means of development on any platform: bare-bones text editor and command-line compile, all the way to generating an IDE project with all dependencies and paths set up. I used it in an old job where the entire team was spread across Windows, Ubuntu, Red Hat and OSX, and the CMake build system allowed the same codebase to be easily imported into each dev's build preferred way of developing. The IDE project files never got into the codebase, as CMake would generate them elsewhere and they would reference the repo files in the original directory. I'm very much in the camp of "I'm not using the command line if i can avoid it" and windows doesn't lend itself to that kind of development easily anyway. So sticking with just a makefile and forcing all Devs to use that is pretty much out of the question. CMake solves that by separating the source from the means of building on a platform. The base sourceforce repo DOES contain visual studio files, and OLD ones at that. Lymia's fork has gotten rid of them, but not replaced them with anything that lends itself to being windows-friendly.
|
|
ruien
0/0 Germ
Posts: 26
Favorite Card: Shifting Sky
Favorite Set: Eldritch Moon
Color Alignment: White, Blue, Colorless
|
Post by ruien on Oct 17, 2018 16:01:06 GMT
The idea behind CMake is it would allow for any means of development on any platform: bare-bones text editor and command-line compile, all the way to generating an IDE project with all dependencies and paths set up. I used it in an old job where the entire team was spread across Windows, Ubuntu, Red Hat and OSX, and the CMake build system allowed the same codebase to be easily imported into each dev's build preferred way of developing. The IDE project files never got into the codebase, as CMake would generate them elsewhere and they would reference the repo files in the original directory. These points make sense to me.
Want to proceed with this?
|
|
forcegaia
0/0 Germ
Posts: 14
Favorite Card: Rafiq of the Many
Favorite Set: Return to Ravnica
Color Alignment: Blue, Red
|
Post by forcegaia on Oct 17, 2018 16:20:27 GMT
That was the plan. I've got some other projects that need my attention more urgently (the reason I've not focused on this yet) . But this seems like a good plan for when i get to it.
|
|
forcegaia
0/0 Germ
Posts: 14
Favorite Card: Rafiq of the Many
Favorite Set: Return to Ravnica
Color Alignment: Blue, Red
|
Post by forcegaia on Oct 17, 2018 16:28:08 GMT
One thing i forgot to mention in the initial reply is modernisation would be the main initial focus.
The main windows issue regarding that is that MSE is ignorant of User Account Control. UAC is the concept where Windows Vista and above ask you about a program wanting admin rights to modify certain directories like 'program files'. This is the reason why an install of MSE in program files can't update using the MSE-installer files. This is ignorance is likely because the current build was developed and compiled for XP SP2, before the os locked down Program Files in SP3 and gave the UAC prompt in Vista.
This is the reason I'd not support any windows OS lower than 7. Preferably I'd like to say lower than 8 due to the huge changes between 7 and 8, but i know a lot of users will use 7.
|
|
forcegaia
0/0 Germ
Posts: 14
Favorite Card: Rafiq of the Many
Favorite Set: Return to Ravnica
Color Alignment: Blue, Red
|
Post by forcegaia on Oct 23, 2018 10:09:33 GMT
My first issue either way is i don't know much about the framework it uses. wxWidgets + an old version of Boost. I don't see the appeal of working off of lymia's fork. The main point in favor of Lymia's fork is that it renders card art as .png files internally instead of .jpg. Allow me to clarify both: There's a difference between hearing about the framework, and knowing much about it and how it works. I know what framework it uses; I've just never worked with wxWidgets before, so i don't know much about it. It'll just be a learning curve. In fact, I say exactly this in the post you quoted. We also know the feature difference (the jpeg -> png thing, as well as a little feature loss apparently) - we're talking about the codebase itself and where lymia's fork branches off on the main codebase.
|
|
conshonnery
0/0 Germ
Posts: 4
Favorite Card: Phyrexian Arena
Favorite Set: Urza's Saga
Color Alignment: White, Blue, Black
|
Post by conshonnery on Nov 17, 2018 18:35:19 GMT
Hey, I just thought I'd chime in and say that I have some interest in working on the source, specifically with improving features to make it easier to playtest sets developed with MSE.
I'm a professional C++ developer, but my Achilles' heel is that I have very little familiarity with different build tools and dev environments (I've almost exclusively worked in VS projects that were already fully configured and ready for development after pulling down the source).
That said, if this gets to a point where I can pull down a github project, build it on Windows (would like a VS solution file wrapper with a linux-friendly build tool under the covers, but I can work from command line tools), I would have interest in helping out on the project.
|
|
forcegaia
0/0 Germ
Posts: 14
Favorite Card: Rafiq of the Many
Favorite Set: Return to Ravnica
Color Alignment: Blue, Red
|
Post by forcegaia on Jan 8, 2019 3:09:19 GMT
Hey, I just thought I'd chime in and say that I have some interest in working on the source, specifically with improving features to make it easier to playtest sets developed with MSE. I'm a professional C++ developer, but my Achilles' heel is that I have very little familiarity with different build tools and dev environments (I've almost exclusively worked in VS projects that were already fully configured and ready for development after pulling down the source). That said, if this gets to a point where I can pull down a github project, build it on Windows (would like a VS solution file wrapper with a linux-friendly build tool under the covers, but I can work from command line tools), I would have interest in helping out on the project. You are describing my level of skill as well. which is why this is taking time as it's a huge learning curve for me.
|
|
Fenhl
0/0 Germ
Posts: 7
Favorite Card: Dryad Arbor
Favorite Set: Conspiracy
Color Alignment: White, Blue
|
Post by Fenhl on Apr 15, 2020 13:48:56 GMT
I've managed to get Twan van Laarhoven, the MSE lead dev, to join the Custom Magic Discord and upload a slightly updated codebase, based on Lymia's fork, but with her build system replaced with almost working build instructions for Visual Studio. I've forked it with some additions to those instructions at github.com/fenhl/MagicSetEditor2, which get it to build, at least on my computer. Right now, there are some things to fix that have been broken by an upgrade to wxWidgets 3. For example, card artwork no longer appears. I have no experience with wxWidgets, so any help would be appreciated.
|
|