SageTV Community  

Go Back   SageTV Community > SageTV Development and Customizations > SageTV Github Development
Forum Rules FAQs Community Downloads Today's Posts Search

Notices

SageTV Github Development Discussion related to SageTV Open Source Development. Use this forum for development topics about the Open Source versions of SageTV, hosted on Github.

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 06-24-2016, 09:53 AM
jusjoken jusjoken is offline
SageTVaholic
 
Join Date: Dec 2005
Location: Strathmore, AB
Posts: 2,727
Releases and updating version numbers

A few of us have been having a discussion through email/PM's around this topic so I thought we should get this open to the community.

One of the tasks I have had to do while building out the Windows Installers was to change the internal version numbers in a few locations prior to building the release and then the installer. This includes...

  • Windows SageLauncher - change file version and product version in rc file
  • Windows MiniLauncher - change file version and product version in rc file
  • Windows Installerinclude - change product version AND installer version
  • Sage.jar - I have never changed the base version on this myself so someone else will need to tell us how this is done

The manual process I have used in the past is....
  • ask Stuckless to build the Sage.jar
  • record the version number from the Sage.jar ie: 9.0.4.xxx
  • update the 3 locations in the Windows development environment as stated above (note: until I commit the installer build code the last item so far needs to be done by me on my build machine)
I did it in the above order so the Sage.jar and Windows exe's would all have the identical version number.

Now...for the Windows installers it is key that if a developer commits new functions that they want the installer updated so users can perform an UPGRADE, then the 3rd digit in the version must be updated...ie: 9.0.3.xxx needs to become 9.0.4.yyy. For example the way the installer is set up is that 9.0.3.yyy will not install over 9.0.3.xxx as the installer sees this as the same "version". There are ways around this however it would then break the process for upgrading between V7 and V9 so I have tested that and prefer not to go there.

So my suggestion is....developers need to increment the version (3rd digit) when they commit changes that need a build of the Sage.jar or requiring a new windows installer to be created and released.

Comments welcome.

k
__________________
If you wish to see what I am up to and support my efforts visit my Patreon page
Reply With Quote
  #2  
Old 06-24-2016, 10:29 AM
EnterNoEscape's Avatar
EnterNoEscape EnterNoEscape is offline
SageTVaholic
 
Join Date: Jun 2010
Location: Harrisburg, PA
Posts: 2,657
I'm wondering if when you get your changes in for the Windows installer, we could add a task to gradle that would do all of the needed increments automatically and after running the task, all the developer would then need to do is commit the changes.

The gradle script refers to ./java/sage/Version.java for the major, minor and micro version. The build number is supposed to come from ./java/sage/SageConstants.java, but the gradle script appears to only use that number if you're not using Linux. That step could be adapted to do something similar on Windows. You just need to have git already installed and in the PATH environment variable which most people would already have if they are doing this kind of development. This is where the version used for Sage.jar is created.
__________________
SageTV v9 Server: ASRock Z97 Extreme4, Intel i7-4790K @ 4.4Ghz, 32GB RAM, 6x 3TB 7200rpm HD, 2x 5TB 7200rpm HD, 2x 6TB 7200rpm HD, 4x 256GB SSD, 4x 500GB SSD, unRAID Pro 6.7.2 (Dual Parity + SSD Cache).
Capture: 1x Ceton InfiniTV 4 (ClearQAM), 2x Ceton InfiniTV 6, 1x BM1000-HDMI, 1x BM3500-HDMI.

Clients: 1x HD300 (Living Room), 1x HD200 (Master Bedroom).
Software: OpenDCT :: WMC Live TV Tuner :: Schedules Direct EPG
Reply With Quote
  #3  
Old 06-24-2016, 11:42 AM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
For now, and for the pace that commits are coming in (slow), I think a manual process is decent enough. Honestly, having the fewest number of people manipulating version numbers is probably for the best. The way I see it, a lot of the 'little' fixes (I'm getting set-up to do one now) don't need to be released right away, so simply committing them, and not ordering a new build, is probably fine. Things like EnterNoEscapes remuxer work, however, does warrant a new build, so that's when the micro version would be incremented, and ultimately, that's when a Changelog would be released, so we'd have a commit that did nothing but version updates - it would include number change in Version.jar, and the changes to the rc files, and an entry in a changelog file summarizing the work done since the last micro version change.

Minor Fix: Developer simply commits the change. This won't get distro'd until the next "Change".
Minor Change: Developer commits the change, and requests a new release from managers (jusjoken & Stuckless at this point). Manager increments version info and changelog, and checks this in as a separate 'version update to x.x.x' commit. Managers build the new version and upload to bintray.

I think this process would work. Alternatively, the individual developers could be responsible for adding notes to the ChangeLog, but I think that might be inconsistent, and things would get mixed. I also haven't discussed how Jeff works into this, because obviously there'd be delays waiting for his approval into the actual google/sagetv repository before the next steps could be finalized.
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room
Reply With Quote
  #4  
Old 06-24-2016, 12:07 PM
EnterNoEscape's Avatar
EnterNoEscape EnterNoEscape is offline
SageTVaholic
 
Join Date: Jun 2010
Location: Harrisburg, PA
Posts: 2,657
You made some good points. The version updates/release notes updates should probably be limited to a small number of people ( <= 3) so we can keep things consistent.

I still think it would be nice to add a gradle task to help them out a little or we should find a way to get Visual Studio to take a cue from Version.java/SageConstants.java. Ideally these things shouldn't need to be changed in more than one place. I usually lean towards automation when it should mitigate human error.
__________________
SageTV v9 Server: ASRock Z97 Extreme4, Intel i7-4790K @ 4.4Ghz, 32GB RAM, 6x 3TB 7200rpm HD, 2x 5TB 7200rpm HD, 2x 6TB 7200rpm HD, 4x 256GB SSD, 4x 500GB SSD, unRAID Pro 6.7.2 (Dual Parity + SSD Cache).
Capture: 1x Ceton InfiniTV 4 (ClearQAM), 2x Ceton InfiniTV 6, 1x BM1000-HDMI, 1x BM3500-HDMI.

Clients: 1x HD300 (Living Room), 1x HD200 (Master Bedroom).
Software: OpenDCT :: WMC Live TV Tuner :: Schedules Direct EPG
Reply With Quote
  #5  
Old 06-24-2016, 03:52 PM
jusjoken jusjoken is offline
SageTVaholic
 
Join Date: Dec 2005
Location: Strathmore, AB
Posts: 2,727
Quote:
Originally Posted by Fuzzy View Post
Minor Fix: Developer simply commits the change. This won't get distro'd until the next "Change".
Minor Change: Developer commits the change, and requests a new release from managers (jusjoken & Stuckless at this point). Manager increments version info and changelog, and checks this in as a separate 'version update to x.x.x' commit. Managers build the new version and upload to bintray.
As I have not uploaded the installer code/solution then I obviously need to be involved for now....but do not want to have everyone depend on me for this long term....share the pain

However, I personally feel that the change owner should be responsible to create a change log and change the few manual locations where the version number needs changing as part of their change commit. This way when Jeff approves it then it is ready for the "managers" to pull, build and create the installer packages.

k
__________________
If you wish to see what I am up to and support my efforts visit my Patreon page
Reply With Quote
  #6  
Old 06-25-2016, 07:43 AM
jusjoken jusjoken is offline
SageTVaholic
 
Join Date: Dec 2005
Location: Strathmore, AB
Posts: 2,727
I have done some more reading on this topic and believe that when I find time and if someone else doesn't decide to do something else first I may be able to...
  • use MSBUILD and perform the release build and the installer build from the commandline
  • use MSBUILD to read in the MAJOR, MINOR and MICRO versions from Versions.java
  • use MSBUILD to get the GIT count of commits to set the build number part of the version
  • use MSBUILD to update the 3 windows resource files to the new version
  • use MSBUILD to either call the Gradle script to build the JAR OR there may be ways to use Gradle to call MSBUILD as there is a gradle plugin for that....need to test this out
  • use MSBUILD to build the release files
  • use MSBUILD to compile and build the Setup files
I have never done anything in the past with MSBUILD but I found examples for each of the above so I may be able to accomplish these.


I have not searched yet but I may be able to clone the repo as part of the MSBUILD or Gradle scripts initially to help to automate more of the process but we will see if the above works first.


I will give this a try as time permits but others feel free to jump in and volunteer to take this on


However, I still feel that the developer that is commiting their functionality changes should update the version in Versions.java as part of their commit OR Jeff does this if he feels this is major enough when he merges the commits. Either way, I think the new version number needs to be already on GitHub in a committed state otherwise after the build/release I would need to push a change for the Version number..... but open for suggestions.


k
__________________
If you wish to see what I am up to and support my efforts visit my Patreon page
Reply With Quote
  #7  
Old 06-25-2016, 06:47 PM
Fuzzy's Avatar
Fuzzy Fuzzy is offline
SageTVaholic
 
Join Date: Sep 2005
Location: Jurupa Valley, CA
Posts: 9,957
Every compilation action that visual studio does, I believe, is done via MSBUILD, so it SHOULD be able to be built there. I thought somewhere Visual Studio even writes out a lot of all MSBUILD commands it used - or at least it did at some point - so yeah, it SHOULD be able to be built all from command line, which means all from Gradle - that really SHOULD be the ideal end case - a build system that takes the git, and outputs JUST the installer files for each platform we target - but of course, as I'm sure you're aware, that alone is a pretty extensive task to set up, and right now, you're the only one who's ever even built the windows things manually, let alone even look at automating it.. :-)
__________________
Buy Fuzzy a beer! (Fuzzy likes beer)

unRAID Server: i7-6700, 32GB RAM, Dual 128GB SSD cache and 13TB pool, with SageTVv9, openDCT, Logitech Media Server and Plex Media Server each in Dockers.
Sources: HRHR Prime with Charter CableCard. HDHR-US for OTA.
Primary Client: HD-300 through XBoxOne in Living Room, Samsung HLT-6189S
Other Clients: Mi Box in Master Bedroom, HD-200 in kids room
Reply With Quote
Reply


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
STV Releases mayhewda SageMC Custom Interface 1 10-15-2009 04:59 PM
Updating my plugin version.... beelzerob SageTV Customizations 9 09-18-2007 08:58 AM
New DVD Releases AWS SageTV Customizations 9 08-24-2006 12:36 PM
PVR350+PVR250 setup... Help! version numbers? proc amp? video out? mattchapin Hardware Support 4 12-12-2003 10:28 AM
Do the clients and servers check their version numbers?! jimbobuk SageTV Beta Test Software 0 05-31-2003 06:46 AM


All times are GMT -6. The time now is 07:17 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2023, vBulletin Solutions Inc.
Copyright 2003-2005 SageTV, LLC. All rights reserved.