RomRaider Logo

RomRaider

Open Source ECU Tools
 FAQ •  Register •  Login 

RomRaider

Documentation

Community

Developers

It is currently Tue Dec 23, 2025 11:12 am

All times are UTC - 5 hours [ DST ]





Post new topic Reply to topic  [ 45 posts ]  Go to page Previous  1, 2, 3
Author Message
 Post subject: Re: Time To Ditch Ant(iquated build system)?
PostPosted: Fri May 04, 2012 10:50 am 
Offline
Experienced
User avatar

Joined: Thu Apr 19, 2012 3:44 am
Posts: 385
dschultz wrote:
I think tracking the deps is a great idea. A few times I've had to do what you mentioned to figure out what version of library we have to get some documentation or source or whatever.

Glad you like it! :-)

Quote:
BTW: ASCII art is so 80's, you should get with the times as we have pixel colouring apps now ;-)

LOL :-p

Quote:
I think we can chat Sunday as I'm off to the forest tomorrow to clear some trails for dirt biking. http://bytown-motorcycle-assoc.ca/

Cool, suits me! :-)

_________________
The type of scooby that I most enjoy!


Top
 Profile  
 
 Post subject: Re: Time To Ditch Ant(iquated build system)?
PostPosted: Fri May 04, 2012 6:13 pm 
Offline
RomRaider Developer

Joined: Wed May 20, 2009 9:49 pm
Posts: 7314
Location: Canada eh!
Fearless wrote:
Quote:
I can make the changes to my fork and you pull them from there to merge with your update and then you can push them to the official repo.

This is probably the best approach for now. Then the only other thing that you need to do is make sure that you're up to date before you do further work at any given time. That plus a little bit of "I'm doing that/have done this" communication and we'll be rosy :-)

Okay I have most of the changes up on my repo now.
https://github.com/dschultzca/RomRaider
The JNA stuff came from here: https://github.com/twall/jna
Version 3.4.0 of the Download section.

Dale
I hope my commit was good...


Top
 Profile  
 
 Post subject: Re: Time To Ditch Ant(iquated build system)?
PostPosted: Fri May 04, 2012 8:44 pm 
Offline
Experienced
User avatar

Joined: Thu Apr 19, 2012 3:44 am
Posts: 385
Commit looks OK, though big :-) You forgot to erase the dodgy history first, though. It's nearly 3am here again, but tomorrow morning I'll "fix" it, and record exactly what I do to achieve that, and post it up in the git thread. It basically involves "git rebase -i hashBeforeLastOneYouWantToChangeInSomeWay" and some typing. Pretty straight forward :-) If you're happy with the results "diff yourCurrentCommit yourNewRebasedCommit" == nothing bad, then you should "git reset --hard yourNewRebasedCommit" and go forward from there :-)

_________________
The type of scooby that I most enjoy!


Top
 Profile  
 
 Post subject: Re: Time To Ditch Ant(iquated build system)?
PostPosted: Sat May 05, 2012 6:04 pm 
Offline
RomRaider Developer

Joined: Wed May 20, 2009 9:49 pm
Posts: 7314
Location: Canada eh!
I can't see the Network view for some reason.
I guess it's still messed as I didn't fix it from before. I did add the rebase option and also tried a rebase but it said I was already at the latest, or something like that.


Top
 Profile  
 
 Post subject: Re: Time To Ditch Ant(iquated build system)?
PostPosted: Sat May 05, 2012 6:07 pm 
Offline
RomRaider Developer

Joined: Wed May 20, 2009 9:49 pm
Posts: 7314
Location: Canada eh!
Oh, the Network view just popped up. Now I see what you mean.


Top
 Profile  
 
 Post subject: Re: Time To Ditch Ant(iquated build system)?
PostPosted: Sat May 05, 2012 7:27 pm 
Offline
Experienced
User avatar

Joined: Thu Apr 19, 2012 3:44 am
Posts: 385
Yeah, the procedure is rebase -i, I'll do it now, document it in the other thread, and push it to a temp branch in my fork for you to examine and try to reproduce as practice :-)

_________________
The type of scooby that I most enjoy!


Top
 Profile  
 
 Post subject: Re: Time To Ditch Ant(iquated build system)?
PostPosted: Sat May 05, 2012 7:45 pm 
Offline
Experienced
User avatar

Joined: Thu Apr 19, 2012 3:44 am
Posts: 385
Done, link for the record: viewtopic.php?f=14&t=8324&p=79692#p79692

_________________
The type of scooby that I most enjoy!


Top
 Profile  
 
 Post subject: Re: Time To Ditch Ant(iquated build system)?
PostPosted: Sun May 13, 2012 2:54 pm 
Offline
Experienced
User avatar

Joined: Thu Apr 19, 2012 3:44 am
Posts: 385
I just did an eclipse only git import and maven build of olv here, and in the console I got this:

Code:
[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building OpenLogViewer 0.0.3-SNAPSHOT
[INFO] ------------------------------------------------------------------------
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-surefire-plugin/2.7.1/maven-surefire-plugin-2.7.1.pom

IE, the same error that you got, however it carried on, did everything, and executed the app just fine.

I did:

Project explorer >> right click olv >> run as >> maven build... >> window pops up, typed "install exec:exec" into the goals field without the quotes, and it "just worked". IE, the SLF4J error seems to mean nothing at all.

Hope that helps :-)

Fred.

_________________
The type of scooby that I most enjoy!


Top
 Profile  
 
 Post subject: Re: Time To Ditch Ant(iquated build system)?
PostPosted: Sun May 13, 2012 11:21 pm 
Offline
RomRaider Developer

Joined: Wed May 20, 2009 9:49 pm
Posts: 7314
Location: Canada eh!
I haven't dug into it. I think it's related to the Eclipse Maven plugin. As you found the project builds an executes regardless of the warning.


Top
 Profile  
 
 Post subject: Re: Time To Ditch Ant(iquated build system)?
PostPosted: Wed May 16, 2012 11:58 pm 
Offline
Newbie

Joined: Tue Apr 19, 2011 10:22 pm
Posts: 93
Location: Kitchener, Ontario, Canada
dschultz wrote:
Fearless wrote:
... best of class ...
That phrase annoys me to no end!!!!!!



Yes, its only useful given the correct context. I've been developing code for 25 years and have never heard of maven until just now and had never heard of ANT until using eclipse for Romraider for the first time last year.

Well, I've never typed a line of java in my life really either as I have not had the need for it in the domain I work in...

I'll just take it for granted that you guys are using the common tools in use in the java world.

_________________
2010 STI w/ built motor, TGV delete, TBE, KW Coil Overs.


Top
 Profile  
 
 Post subject: Re: Time To Ditch Ant(iquated build system)?
PostPosted: Thu May 17, 2012 7:04 am 
Offline
Experienced
User avatar

Joined: Thu Apr 19, 2012 3:44 am
Posts: 385
Short history of Java builds:

  • Nothing/make. Didn't last long.
  • Apache Ant created to fill void. Used as default until some point after Maven created.
  • Maven 1, good ideas, some issues, some adopters, not ideal.
  • Maven 2, wide adoption, some minor niggles, if you managed it well, brilliant. Ant gets dropped by anyone with half a brain and open to new ideas/not rooted in the distant past. Only used by legacy systems and stupid stubborn old fashioned (but typically not actually old) "devs".
  • Maven 3, Maven 2 with the niggles fixed, you don't have to manage it well to get consistent results. Anyone using Ant now needs to be given a straight jacket and sent to a padded room for shock therapy.
  • In amongst the M2 era other tools emerged, particularly based around JVM scripting langs, however AFAIK none are mature yet. And most have similar issues to ant, by choice.

Since M2 days, other projects such as Ivy have been using Maven infrastructure to perform some of Maven's tasks in ant and groovy and so on.

The people who wrote Ant went "not good enough, what do the best developers do in their ant scripts and why, let's make that the default, manage deps properly like apt and call it maven". They got close with m1, VERY close with m2, and are, IMO, there with m3. m3 and m2 are pretty much interchangeable unless you force them to not be. I do that, so m2 will never be used with any project I setup Maven on.

Fred.

_________________
The type of scooby that I most enjoy!


Top
 Profile  
 
 Post subject: Re: Time To Ditch Ant(iquated build system)?
PostPosted: Sun Jan 13, 2013 6:00 pm 
Offline
Experienced
User avatar

Joined: Thu Apr 19, 2012 3:44 am
Posts: 385
An update to this thread.

The structure is in place in the official repo for Mavenisation, and other build system's defaults, too. Along with that came some changes to make RR stand alone without an installation a bit better, though this is not complete yet. Thank Merp for those changes as he did them initially. I had to rework them all to get it included, as some changes were made to the code involved, however Merp should take 99% of the credit there IMO. Which leads me to this:

Fearless wrote:
  • In amongst the M2 era other tools emerged, particularly based around JVM scripting langs, however AFAIK none are mature yet. And most have similar issues to ant, by choice.

It seems I was wrong about this. Gradle and BuildR are both pretty mature now. Both follow M2 standards, both are more succinct and less verbose than M2/M3. Gradle is now used to build the Spring Framework, which is a huge "yep, it can't be bad" tick box. BuildR uses JRuby, so, just like Maven and Ant, it can run on the JVM keeping options wide open. Gradle is Groovy which also runs on the JVM, keeping the doors open to the widest selection of tools possible.

So, the options then:

  • Ant + Ivy
  • Maven 3
  • Gradle
  • BuildR

It's feasible that all four could be there together, after all, they're just a single file each. As seen above, I've already mostly completed Mavenisation of RR. There were a few outstanding issues, some solved by Merp, some still remaining to be solved. Once the remaining issues are cleared up, it paves the way for a few good things:

  • Introduction of build control files for all three currently unused systems.
  • A standalone Windows executable (and standalone jars for other platforms, too.)

By a country mile, Maven is the most common, most well known, and most supported system, with robust out-of-tree dependency handling out there. Maintaining and extending a Maven build should be easily handled by any dev worth their salt. I have zero experience with Gradle and BuildR, so I, at least, would not be much use assisting in maintaining or setting up those.

Ant + Ivy doesn't handle release management, so that very clearly rules it out from my perspective.

Do we have any Gradle or BuildR experts in our midst? If so, go ahead, the stage is all yours :-)

Fred.

_________________
The type of scooby that I most enjoy!


Top
 Profile  
 
 Post subject: Re: Time To Ditch Ant(iquated build system)?
PostPosted: Wed Jan 16, 2013 12:15 pm 
Offline
RomRaider Developer

Joined: Wed May 20, 2009 9:49 pm
Posts: 7314
Location: Canada eh!
For the benefit of others not familiar with what the current steps are to get RomRaider from source to a release people can download and use, I thought I'd outline what I currently do.

First off, I’m not a software engineer and have had only introductory courses in some software languages. I think the first being Commodore BASIC. So my knowledge of current build systems is basically nonexistent.
That said, in the few hours of reading about build systems I thought Gradle looked most intuitive to me.

Anyway, back to the purpose of this post. I inherited the RomRaider project as a result of a couple of plugins I wrote and bug fixes I offered. Once I became the "lead" developer I set myself a few steps to follow to keep things consistent. So once I have a new version to provide for review here's what I do.
  • test bug fixes and new features
  • build the application
  • validate the application will install and run on Windows and Linux
  • validate the standalone package will unzip and run on Windows and Linux
  • upload the four files to the server for public access
  • update the Download wiki page
  • update the News wiki page
  • post an announcement in the RomRaider Development forum about the new version
  • wait for the good and the bad feedback
  • correct problems and repeat the steps starting from the top of this list

RomRaider is currently provided in four flavours, there’s an installable version for both Windows and Linux and a standalone ZIP version for both Windows and Linux.
The installable versions allow a user to “install” the RomRaider applications onto their system in a user specific or a global (all users) way taking into account user permissions to install software. It also creates shortcuts in a RomRaider program group in the desktop start menu, which can start the Editor or Logger with the appropriate Java VM custom settings. It also offers an uninstaller that cleans RomRaider from the file system and the start menu but leaves customization files intact. The Windows installer (setup.exe) is by far the most download of the four flavours.

The standalone version is provided as a zip file which can be unzipped and stored anywhere on the file system that the user has access to. RomRaider is started from the command line by the “run.bat|sh” file. This file contains the Java VM custom settings that RomRaider uses. By default the run file launches the Editor, but you can make a copy of it and uncomment the line that will launch the Logger directly.
The standalone version offers the user the ability to have coexisting versions of the RomRaider application on their system. This is not easily achieved with the installer.

Moving forward with the current build system to support the 64 bit platforms would result in eight flavours of RomRaider. Four for the 32 bit systems and four for the 64 bit systems.

Regarding changing the build system, I have a some questions which I’ll ask in the next post.

Dale


Top
 Profile  
 
 Post subject: Re: Time To Ditch Ant(iquated build system)?
PostPosted: Wed Jan 16, 2013 12:15 pm 
Offline
RomRaider Developer

Joined: Wed May 20, 2009 9:49 pm
Posts: 7314
Location: Canada eh!
From the various wiki and blogs I’ve read there’s advantages/disadvantages, pros and cons with each and every system.
So my questions.
First, do we need a change, what is driving that?

If we change, to which system? That’s the ultimate question of course.

I do see that the “newer” systems appear to be “lifecycle” related. So if I conveyed the lifecycle correctly in my previous post then the new systems add some features and automate a few steps, providing reports and review of the source code.

Fearless (Fred) had shared with me a sample set of reports from the Maven work he started about 8 months ago. I found the reports quite useful and I believe this information is invaluable especially as it pertains to the quality of the source code. (that’s a pro)

The new build systems offer automated software releasing as well as building web site files to go along with the current build. I guess these could be useful if we had the appropriate servers to host them. Maybe these new build systems can accommodate what’s in place now, if not we can ask our host server provider if they can be added alongside the RomRaider web site as a “dev.romraider.com” site or something like that. This I suspect will only be of interest to developers.

As far as these reports go, is there a new set of documents created for each version, or is it just an update of the current documents as the versions are issued?
JavaDocs are also created but I don’t think they are all that relevant to RomRaider as an application.
Do the documents even need to be hosted anywhere or can they just stay local?

The new build systems also appear to separate the dependency files from the source project. If I’m correct this can reduce the repository size as these dependent files are stored in a repository of their own on public servers. Does this mean that you need to be online and connected to the Internet to build the project?
How does the dependency repository store their own dependents if they are native files like .dll or .so libraries?

We currently have the build and packaging tools in the RomRaider repository such that anyone can download the repository and with the press of a button build their own version of the RomRaider project including the four files that encompass the installable and zip packages. These additional tools add to the repository size and are only needed by a developer who is providing releases. I think these can be disassociated from the repository and replaced with a few instructions indicating what tools are needed and where to install them so anyone can use the “one button build” currently in place.
I suspect some of this may go away with a change to a different build system if it can provide the distribution packages that the users need to install RomRaider...?

I’m sure I’ll have more questions as we discuss this topic.


Top
 Profile  
 
 Post subject: Re: Time To Ditch Ant(iquated build system)?
PostPosted: Sun Jan 20, 2013 8:37 am 
Offline
Experienced
User avatar

Joined: Thu Apr 19, 2012 3:44 am
Posts: 385
dschultz wrote:
Moving forward with the current build system to support the 64 bit platforms would result in eight flavours of RomRaider. Four for the 32 bit systems and four for the 64 bit systems.

This is a HUGE mistake. One flavour with intelligence and resources inside is sufficient. Wrap it with which ever installation methods you wish, at that point.

dschultz wrote:
First, do we need a change, what is driving that?

I used to want to do some work on RR for various reasons. It was me driving a change in build technique, as I see it as a minimum requirement for my involvement. I do however have other minimum requirements, which I'll elaborate on shortly.

Quote:
Fearless (Fred) had shared with me a sample set of reports from the Maven work he started about 8 months ago. I found the reports quite useful and I believe this information is invaluable especially as it pertains to the quality of the source code. (that’s a pro)

You can easily have this and tune it to your taste without switching to a real system entirely if this is all that interests you.

Quote:
I guess these could be useful if we had the appropriate servers to host them.

For site deploy, just a simple SSH connection is all that's required, though you can use more antiquated approaches like FTP or different approaches like webdav, or whatever else you want to write a plugin for. Same goes for artifact deployment. There is no need for a "fancy" nexus instance such as the one that I use. You can simply have apache + ssh for that. It's just a dir structure really. Just put it on a subpath of the existing site and get the CMS to ignore it.

Quote:
is there a new set of documents created for each version, or is it just an update of the current documents as the versions are issued?

New each time. Including dev builds in between releases. I operate my stuff on a versioned path with a symlink to latest so that google can index one copy primarily.

Quote:
JavaDocs are also created but I don’t think they are all that relevant to RomRaider as an application.

It's optional, but harmless to include.

Quote:
Do the documents even need to be hosted anywhere or can they just stay local?

You don't have to deploy them, they could just stay local, though you lose a lot of the benefit of transparency this way.

Quote:
The new build systems also appear to separate the dependency files from the source project. If I’m correct this can reduce the repository size as these dependent files are stored in a repository of their own on public servers.

Ideally you'd have no dependencies that aren't in central, however reality often dictates that you do. Once again, a simple directory setup through apache + config pointing at it, is sufficient for this, no need to get fancy with nexus. With the exception of the stuff you've added since I did my work, it's all online on my nexus instance anyway. This can easily be mirrored/moved to your server so as to not rely on me.

With regards repository size, it can't reduce it, but it can stop it growing. If I were in the driver's seat, I'd make the switch, then filter the entire repo to remove all history of jars and so forth. At that point I'd move the old project to an archive name and consider the filtered one the master copy. Anyone working with the old copy would be affected and require notification first. This may be over your head somewhat, though, or perhaps not.

Quote:
Does this mean that you need to be online and connected to the Internet to build the project?

No idea about gradle/buildr, but maven has -o for offline. You build it once online, then -o in future until a dep changes.

Quote:
How does the dependency repository store their own dependents if they are native files like .dll or .so libraries?

Search? I'd bundle them within the jar if I were doing it. I think JNA does this. It works everywhere.

I hope some of that assists you in the direction that you choose to move, even if it's "no where". In closing, though, the recent censorship of at least three members harmless posts has left a bitter taste in my mouth and zero desire to assist the RR project in becoming more professional. My final contribution will be my now-outdated pom.xml and settings.xml files so that you can at least do your report generation.

The code might be free, but if the community is not, it's not worth a damn to me.

Fred.

_________________
The type of scooby that I most enjoy!


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 45 posts ]  Go to page Previous  1, 2, 3

All times are UTC - 5 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 4 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Style based on FI Subsilver by phpBBservice.nl