ENIGMA Forums

Outsourcing saves money => Issues Help Desk => Topic started by: TheExDeus on December 09, 2013, 07:18:19 AM

Title: Merging unfinished changes
Post by: TheExDeus on December 09, 2013, 07:18:19 AM
It seems that all the changes now being made to object system and whatnot have broken ENIGMA. While it's something that usually happens, I don't think we should keep doing that. The guy making the changes could of just finished the whole thing and then it could be merged. Same with many other pull requests.

Although it's possible my current problem is not connected to these particular changes, but who knows. Right now I can compile fine, but the exe is empty (white windows) even when I add a room (blue background by default) and objects. Someone can replicate this?

But this bug aside, we should merge only when functional. That is why I am still waiting for those integration tests from fortevin.
Title: Re: Merging unfinished changes
Post by: Josh @ Dreamland on December 09, 2013, 10:38:52 AM
This is why we need those additional branches. Everyone thinks their changes are finished and work fine. When I point broken shit out, I'm met with "that's been broken."

Back on SVN when we had the testing and stable tags, we updated them maybe monthly. The tags got grossly out of date. But they always worked. We have users now who don't pull except once in a blue moon because they're sick of all the broken shit. We constantly have regressions.

There is a problem with a build bot or regression test suite, which has prevented me from setting one up myself. The problem is simple: No one has written any regression tests. I don't feel like sitting around and creating a script to test every function in the engine. If someone else does, be my guest. Otherwise, just hope that while I'm writing test cases for the new compiler, I'll be inclined to write them for EDL, too.
Title: Re: Merging unfinished changes
Post by: polygone on December 09, 2013, 10:51:25 AM
It's not worth making a stable until after JDI is finished.
Title: Re: Merging unfinished changes
Post by: TheExDeus on December 09, 2013, 11:52:06 AM
But make the test cases easy to make and add and others will make them. I am willing to write some myself. Originally there were even some special functions in EDL for them I think. But if it requires bash scripting for each case, then of course no one will write them.

So originally I think the idea was this:
1) Make ENIGMA project which has some code in it and functions to output whether a test was successful or not.
2) Make that project be compiled via CLI whenever a new git commit or pull request is made. Also run that project.
3) Watch program output and whether the project compiled - write Jenkins (or other) compatible output for web interface.
If that would of been set up it would of slowly been made. You don't need 5000 tests cases at once. Even 1 would in most cases tell you if something broke.
Title: Re: Merging unfinished changes
Post by: daz on December 09, 2013, 02:38:35 PM
It's not worth making a stable until after JDI is finished.
Seems like I'm gonna die before that happens.

3) Watch program output and whether the project compiled - write Jenkins (or other) compatible output for web interface.
If that would of been set up it would of slowly been made. You don't need 5000 tests cases at once. Even 1 would in most cases tell you if something broke.
Great intentions, but that's mostly impossible. How do you test that something got drawn to the screen correctly?

We have users now who don't pull except once in a blue moon because they're sick of all the broken shit. We constantly have regressions.
My last pull was from 11/17 for this reason.
Title: Re: Merging unfinished changes
Post by: Josh @ Dreamland on December 09, 2013, 03:56:27 PM
Quote
How do you test that something got drawn to the screen correctly?
You don't without screen_save or draw_getpixel. Also surface_save. After that, you load up the two images as matrices in memory and use normalized cross correlation. If it drops under a certain threshold, a red flag goes up. If any of those function fails, you have a red flag, anyway.

Quote
Seems like I'm gonna die before that happens.
Oh, ha-ha. You're not going to graduate before that happens. You're welcome to attend mine this Sunday.

Quote
My last pull was from 11/17 for this reason.
You've pulled half a year more recently than some other people I could name.
Title: Re: Merging unfinished changes
Post by: Goombert on December 09, 2013, 04:11:16 PM
Quote
It seems that all the changes now being made to object system and whatnot have broken ENIGMA.
You are going to have to be a little more specific, I added event inheritance, you can turn that off in Build->Settings. Aetherspawn accidentally committed an infinite loop to my object writing code, which I have since fixed. I changed instance system variables to be controlled by scalars. Fundies moved the preprocessor and everything to %APPDATA%/Roaming/ENIGMA, so please be a little more specific.

Quote
You don't without screen_save or draw_getpixel. Also surface_save.
Fuck all that shit, we should deprecate the getpixel functions in favor of draw_get_pixel_grid() that returns a ds grid of all the pixels, same for sprite and background. Speaking of I also plan to add texture_save which makes all the other background_save and sprite_save calls much easier.

Quote
Seems like I'm gonna die before that happens.
He's merging it right now and in the process of fixing the 500 JDI errors when parsing the STL

Anyway, Harri, please tell me what happened.
Title: Re: Merging unfinished changes
Post by: cheeseboy on December 10, 2013, 12:11:39 AM
http://awesome-toons.org:8010/waterfall I started on build tests but was unable to get the git poller to work and got bored. Josh should really set this up on the main server.
Title: Re: Merging unfinished changes
Post by: Goombert on December 10, 2013, 01:45:47 AM
Oh that was the other thing, I forgot to mention his build bot.
Title: Re: Merging unfinished changes
Post by: TheExDeus on December 10, 2013, 04:13:50 AM
Quote
Anyway, Harri, please tell me what happened.
Quote
Right now I can compile fine, but the exe is empty (white windows) even when I add a room (blue background by default) and objects. Someone can replicate this?
Basically it almost seemed that the data from the project was not written to IDE_EDIT. But I checked and it did. So whatever the project I open and compile I still get the white window which is usually open when not even a room is present. I guess this is because of the changes done for compile directory (move from enigma-dev to appdata?)? Dunno. Maybe I just need new jar's. I used the newest ones available in the wiki links.

If anyone can upgrade to newest from scratch and not replicate my problem, then I will try something else.
Title: Re: Merging unfinished changes
Post by: Goombert on December 10, 2013, 04:23:38 AM
No you're right, it's totally fucking broken. The purpose of that was the ticket on the tracker about moving the preprocessor, it was to help get ENIGMA on the Ubuntu Software Center and create proper Linux packages. The side effect of cheeseboy doing this, was Windows becoming a broken mess.
Title: Re: Merging unfinished changes
Post by: polygone on December 10, 2013, 07:55:19 AM
Robert I think the way to fix the extension shit is by removing ALL the generated files in SHELL, ie api_switchboard, the enigma_ files, .eobjs and preprocessor folder. Because well it magically started working for me now and the only change that I can think of is that I removed those files so hopefully that resolves the issue.

Harri you need to do the same ^ , I am going to make an announcement topic telling people to delete the files when it is confirmed that is the problem. Unfortunately this is one of those changes that was always going to break shit, better to get it out the way with at this stage.
Title: Re: Merging unfinished changes
Post by: Goombert on December 10, 2013, 08:55:46 AM
I already did that and it is making no difference.
Title: Re: Merging unfinished changes
Post by: polygone on December 10, 2013, 09:35:57 AM
hmmm it's magically working for me now for some reason. You sure you got all the files?

EDIT: I just copied API_Switchboard.h back into SHELL and the error reproduces. Must be the issue.
Title: Re: Merging unfinished changes
Post by: Goombert on December 10, 2013, 10:39:24 AM
Yup, deleting API_switchboard.h seems to fix it, I must have missed that one. Haven't tested Box2D or other extensions yet though.