Dupe Launcher, automated updates, and versioning

Status
Not open for further replies.

NowNewStart

Member
Contributor
I will make a Full Version next Week. Today's Evening i will make an extern application which updates Teraslogy. This is simpler and i Can work in my Real PC.
Features of the Full Version:
- GUI with:
- Menu/Info/Version Screen
- (Loading Screen)
- Updater using Jenkins
- Hopefully Jenkins Archive in the Jenkins Of Terasology.
- GitHub Archive
- Start Game in Launcher

What I Could add later:
Load Mods/Texturepacks from Launcher?
Changelog in Launcher.
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
What I Could add later:
Load Mods/Texturepacks from Launcher?
Changelog in Launcher.
Sounds like good potential, yeah. One thing at a time though, looking forward to the base version! :)
 

NowNewStart

Member
Contributor
I will come later in the irc. Then i will work on it, shouldn't take long. Maxium an half hour. Joining in 2 Hours (2pm Cervator's Time :D)
 

NowNewStart

Member
Contributor
I Faied. Not 2pm . 4pm :D. But i can't work Anymore today. I try to work tomorrow beween making Excel Tabels at the Corporation of my uncel.
 

Kai Kratz

Witch Doctor
Contributor
Architecture
Logistics
Don't stress yourself. Take your time and deliver quality. You have no due date.
 

NowNewStart

Member
Contributor
I had some Problems with Gradle. But i can start developing today. I think i can finish it this week, but i don't know :D. We will see^^
 

mkalb

Active Member
Contributor
Logistics
The file "versionInfo.properties" contains some version informations. The class TerasologyVersion read this file and provide methods for all entries.

The log file contains the version informations at the beginning.

INFO: org.terasology.version.TerasologyVersion[buildNumber=282, buildId=2012-09-10_05-46-46, buildTag=jenkins-Terasology-282, buildUrl=[url]http://jenkins.movingblocks.net/job/Terasology/282/[/url], gitBranch=develop, gitCommit=71371c2390771d730ccf357475db4a0fa9d87c84, dateTime=2012-09-10_05-46-50]

TODO:
1. Manual user version (Need discussion)
String/text, which can contain numbers (major, minor, bugfix = 1.3.1) and text (pre, RC, Final, SNAPSHOT, ...)
2. Add a version file at the root of the ZIP file with some of these version informations.
(Help needed with: file name, structure/layout)
3. Should we use version informations for file names (Terasology.zip, ...)?
4. Maybe someone can add a GUI info or help screen with this infos.
5. Other output/use: see http://forum.movingblocks.net/threads/launcher-automated-updates-and-versioning.505/#post-4394
 

NowNewStart

Member
Contributor
I use Informations Form Jenkins Form the newest Stabile Version and a Text file. I look whether Jenkins stable is higher. The GUI contains Information ab out the Version Number.
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Okay, here's my crazy scheme for automating change history for multiple release types while allowing a manual point to add human"polish" to make said changes more readable than our average Git commits:

  • Dev build runs with a set of changes. We can add a Groovy step using JGit or something that'll append said changes to a Markdown file in the GitHub wiki Git repo (one section per build number, leave a placeholder comment at the button to search & replace with changes + new placeholder). Same exact file can be included in the built artifact as the change history / version file (but is not checked into Git at that point)
  • A user can manually tweak these change sections in the wiki if desired for added clarity (but if nobody gets around to it we still have the automated info)
  • Master build runs with a set of changes (raw commit info again, is duplicates from develop, so don't need them). Goes and fetches that version page out of the wiki, increments the minor release number, includes it in the build and checks in an updated version file into the develop branch (triggering a build in that branch) along with updating the README (which is actually what gets displayed on GitHub since develop is default branch)
  • Some extra process is available for when we complete a milestone, incrementing a major release number. Might roll the change history page into a change archive page/file to keep the recent changes summarized and not bloaty.
With the wiki holding per-build change info in systematically named sections we should be able to use that in the launcher's feature line-up ("These are the changes in the builds you're behind"). We'd be treating the GitHub wiki as a sort of poor man's database (that we don't have to host or pay for, heh)

This also goes well with the idea of automatically parsing out game help for the wiki (and readme) as well :)

Reminder (to self): There's an old change listing page that was migrated to https://github.com/MovingBlocks/Terasology/wiki/Download-Terasology - need to overhaul that as part of something like this.

Thoughts?
 

mkalb

Active Member
Contributor
Logistics
https://github.com/MovingBlocks/Terasology/pull/355

I added a file "VERSION.txt" to "src/template". This file is copied by gradle during the jenkins build to the root of the ZIP files (Application and Applet).

Please, can someone change this template (add more useful descriptions, ...).

GUI-Team: miniME89 ...
Please shown some version informations at the gui (starting screen or help/info screen, ...)
You find the information at the class "TerasologyVersion".
 

mkalb

Active Member
Contributor
Logistics
At the moment we have at least three persons ( NowNewStart, C4TH34D, Totti1992) which write a launcher. Thank you for your work!!!

I think we need to concentrate the work. Please let us discuss the features and concepts at this thread and write together only one launcher.

Some ideas and concepts about launcher, updater and installer.

Terasology uses the launcher "launch4J". The file "Terasology.exe" is created by "launch4j".
Please look at the features (http://launch4j.sourceforge.net/).

Other java launchers/installers:
IzPack: http://izpack.org/
Janel: http://www.redskaper.com/
WinRun4J: http://winrun4j.sourceforge.net/
JSmooth: http://jsmooth.sourceforge.net/

At first we should discuss what we need/want. Some ideas:
* Executable file (EXE, ...) which search for java (JRE) and start the game. Should work on different OS (Windows, Linux, Mac)
* Display information (changelog, new version hint, links/URLs, version of the installed game, ...)
* Download and install a new version (stable/master or develop)
* Install path (display and edit)
* Search/download/update/install mods/plugins
* Change graphic/video options (before the game starts)
* Enter a username (mail, password, ...) (needed for multiplayer or different users at the same computer)
* Enable a developer/debug mode
* A splash screen
* ...

Solutions:

1. Extend an existing open-source launcher/installer
We add some of the features into the launcher.
I think launch4J doesn't support all features.

2. Open-source launcher/installer starts our launcher/updater (java)
Our new updater is written in java and integrated into the file "Terasology.jar".

3. Our new launcher/updater (EXE, ...) starts an open-source launcher/installer
The updater have to exist for different OS. We need an EXE file for windows.

4. Our new launcher/updater (EXE, ...) starts the game
The updater have to exist for different OS. We need an EXE file for windows.
We use not an existing open-source launcher/installer. Our launcher searches for the java (JRE).


I prefer the solutions 1 and 2.

What do you think?
 

Cervator

Org Co-Founder & Project Lead
Contributor
Design
Logistics
SpecOps
Talked to NowNewStart on IRC earlier, got past LWJGL in Netbeans and might have sorted out some confusion on launcher details :)

mkalb - that all sounds great, I wonder if there are any Minecraft-style launchers out there that have been made open source with a compatible license? Tekkit's launcher for instance already does everything we'd need, and I know Spout has one too. That would get us one step closer
 

Skaldarnar

Development Lead
Contributor
Art
World
SpecOps
I've found this MC launcher, and regarding to this blog post it is open source. But I didn't find the time to read through it, so maybe you could have a look at it.
I'm very keen with mkalb remarks, but you could mark some of the features as optional/later features (such as the mods/plugins aspect). ;)
 

NowNewStart

Member
Contributor
Just including Cervator 's name that he can see that.

Actually i have much to do for school and have no time for developing, but i will try to (finally) make the Launcher as soon as i can :)

Greets,
NowNewStart
 

Skaldarnar

Development Lead
Contributor
Art
World
SpecOps
NowNewStart, the launcher is pretty finished right now :D --> new Launcher Thread.
Of course you are welcome to contribute ;)

Closing this one now, all launcher discussion should go to the new launcher thread.
 
Status
Not open for further replies.
Top