[Title] support change log
authorjiil.hyoun <jiil.hyoun@samsung.com>
Mon, 29 Oct 2012 13:50:42 +0000 (22:50 +0900)
committerjiil.hyoun <jiil.hyoun@samsung.com>
Mon, 29 Oct 2012 13:50:42 +0000 (22:50 +0900)
[Type] Feature
[Module] Toolchain /
[Priority] Major
[Jira#]
[Redmine#]
[Problem]
[Cause]
[Solution]
[TestCase]

Change-Id: I1435044a3fd3555d267a411041b40c645c71f318

package/changelog
package/pkginfo.manifest
src/build_server/BinaryUploadProject.rb
src/build_server/GitBuildJob.rb
src/build_server/RegisterPackageJob.rb
src/common/package.rb
src/pkg_server/distribution.rb
src/pkg_server/packageServer.rb

index 567718dd820bf41d465be6b67ccbef9890395380..8a82a82e15559ffe1b8d2cbcdef1a6c4b1c2e4fa 100644 (file)
@@ -1,3 +1,6 @@
+* 1.2.10
+- Change log support
+== hyoun jiil <jiil.hyoun@samsung.com> 2012-10-29
 * 1.2.9
 - Added distribution lock
 == hyoun jiil <jiil.hyoun@samsung.com> 2011-10-18
index ae55c992e1a5fc8d6147b8e898283f27e739fdaf..0ed5485ba1983e542cdf82ab40b38a8d7fbfb872 100644 (file)
@@ -1,5 +1,5 @@
 Source : dibs
-Version :1.2.9
+Version :1.2.10
 Maintainer : taejun ha<taejun.ha@samsung.com>, jiil hyoun <jiil.hyoun@samsung.com>, donghyuk yang <donghyouk.yang@samsung.com>, donghee yang <donghee.yang@samsung.com>, sungmin kim <dev.sungmin.kim@samsung.com
 
 Package : dibs
index b6db0de0899af7984d753f99a92ec009993c4c27..a48dd7df420ebfcdc6d82fb1b95a98b43556f5aa 100644 (file)
@@ -83,23 +83,23 @@ class BinaryUploadProject < CommonProject
                        return nil
                end
 
-               #set up change log
-               change_log = {}
-               begin
-                       change_log = Parser.read_changelog "#{pkginfo_dir}/changelog" if File.exist? "#{pkginfo_dir}/changelog"
-               rescue => e
-                       @server.log.error( e.message, Log::LV_USER)
-                       return nil
-               end
-
-               if not change_log.empty? and pkginfo.packages[0].change_log.empty? then
-                       pkginfo.packages.each {|pkg| pkg.change_log = change_log}
-               end
-
-               if @server.changelog_check and not pkginfo.packages[0].does_change_exist? then
-                       @server.log.error( "change log not found", Log::LV_USER)
-                       return nil
-               end
+               ##set up change log
+               #change_log = {}
+               #begin
+               #       change_log = Parser.read_changelog "#{pkginfo_dir}/changelog" if File.exist? "#{pkginfo_dir}/changelog"
+               #rescue => e
+               #       @server.log.error( e.message, Log::LV_USER)
+               #       return nil
+               #end
+
+               #if not change_log.empty? and pkginfo.packages[0].change_log.empty? then
+               #       pkginfo.packages.each {|pkg| pkg.change_log = change_log}
+               #end
+
+               #if @server.changelog_check and not pkginfo.packages[0].does_change_exist? then
+               #       @server.log.error( "change log not found", Log::LV_USER)
+               #       return nil
+               #end
 
                pkgs =  pkginfo.get_target_packages(os)
                if pkgs.count != 1 then
index b9b1e7be05af374d3d4f4134df3592c90b303d1a..5040ff83c393f350837fa9af9229fd4f4b849ed7 100644 (file)
@@ -156,29 +156,30 @@ class GitBuildJob < BuildJob
                        return false
                end
 
-               #set up change log
-               change_log = {}
-               begin
-                       change_log = Parser.read_changelog "#{@source_path}/package/changelog" if File.exist? "#{@source_path}/package/changelog"
-               rescue => e
-                       @log.error( e.message, Log::LV_USER)
-                       return false
-               end
-
-               if not change_log.empty? and @pkginfo.packages[0].change_log.empty? then
-                       @pkginfo.packages.each {|pkg| pkg.change_log = change_log}
-               end
-
-               if @server.changelog_check and not @pkginfo.packages[0].does_change_exist? then
-                       @log.error( "change log not found", Log::LV_USER )
-                       return false
-               end
-
                # set up pkgsvr_client
                @pkgsvr_client =  Client.new(@pkgsvr_url, @job_working_dir, @log)
 
                # checking version if not reverse-build job or not internal-job
                if not @is_rev_build_check_job and not @is_internal_job  then
+
+                       #check change log
+                       change_log = {}
+                       begin
+                               change_log = Parser.read_changelog "#{@source_path}/package/changelog" if File.exist? "#{@source_path}/package/changelog"
+                       rescue => e
+                               @log.error( e.message, Log::LV_USER)
+                               return false
+                       end
+
+                       if not change_log.empty? and @pkginfo.packages[0].change_log.empty? then
+                               @pkginfo.packages.each {|pkg| pkg.change_log = change_log}
+                       end
+
+                       if @server.changelog_check and not @pkginfo.packages[0].does_change_exist? then
+                               @log.error( "change log not found", Log::LV_USER )
+                               return false
+                       end
+
                        # check availabiltiy
                        if not @server.check_job_availability( self ) then
                                @log.error( "No servers that are able to build your packages.", Log::LV_USER)
index a95aed57bbd53e9f31500a6fe865876547467f4f..b7b5662a46094cf2fcd3bf7643f7aae8080643bb 100644 (file)
@@ -193,10 +193,10 @@ class RegisterPackageJob < CommonJob
                                return false
                        end
 
-                       if @server.changelog_check and not @pkginfo.packages[0].does_change_exist? then
-                               @log.error( "change log not found", Log::LV_USER )
-                               return false
-                       end
+                       #if @server.changelog_check and not @pkginfo.packages[0].does_change_exist? then
+                       #       @log.error( "change log not found", Log::LV_USER )
+                       #       return false
+                       #end
 
                        if @cancel_state != "NONE" then return false end
 
index 5be697cd2e21edec6e55577956b24523b5f0a3fc..a7c139f6f22d4f867ee34134b6ded1bac27a266b 100644 (file)
@@ -109,6 +109,6 @@ class Package
        end
 
        def get_changes
-               return "#{@package_name} #{@os_list.join(",")} #{@version}\n#{@change_log[@version]}"
+               return @change_log[@version]
        end
 end
index 8bd42e274994774e40f4cfe76796cc58214483fa..e301f58f0b10f5d2b3a7113e82b37babdcf5c7aa 100644 (file)
@@ -286,7 +286,7 @@ class Distribution
                                end
 
                                @pkg_hash_os[os][pkg.package_name] = pkg
-                               changes.push pkg.get_changes if pkg.does_change_exist?
+                               changes.push "Package: #{pkg.package_name} changes: #{pkg.get_changes}" if pkg.does_change_exist?
                        when "REMOVE"
                                if not force then
                                        if @pkg_hash_os[os][pkg.package_name].origin.eql? "local" then
@@ -307,7 +307,7 @@ class Distribution
                update_archive_list.each do |pkg|
                        if not @archive_pkg_list.include? pkg then
                                @archive_pkg_list.push pkg
-                               changes.push "Add archive package #{pkg.package_name}"
+                               changes.push "Add archive package #{pkg}"
                                archive_update_flag = true
                        end
                end
@@ -328,7 +328,7 @@ class Distribution
                Utils.file_unlock(lock_file)
 
                if not changes.empty? then
-                       @last_sync_changes = "SYSTEM: sync parents server \n#{changes.join("\n")}"
+                       @last_sync_changes = "SYSTEM: sync parents server \n#{changes.uniq.join("\n\n")}"
                end
 
                return distribution_update_flag
index 80910fa7038cd7d20972b6edee5c8bb5b233b24f..03da05862ec5ca37e1ee4fa21e438761c328a856 100644 (file)
@@ -259,11 +259,21 @@ class PackageServer
        end
 
        def get_changelog_string( package_list )
-               log_list = []
+               log_list = {}
                package_list.each do |pkg|
-                       if pkg.does_change_exist? then log_list.push pkg.get_changes end
+                       if not pkg.does_change_exist? then next end
+                       set = false
+                       if log_list[[pkg.package_name, pkg.version, pkg.get_changes]].nil? then
+                               log_list[[pkg.package_name, pkg.version, pkg.get_changes]] = pkg.os_list
+                       else
+                               log_list[[pkg.package_name, pkg.version, pkg.get_changes]] = log_list[[pkg.package_name, pkg.version, pkg.get_changes]] + pkg.os_list
+                       end
+               end
+               str=""
+               log_list.each do |key, os_list|
+                       str = str + "Pacakge: #{key[0]}\nOS: #{os_list.join(", ")}\nVersion: #{key[1]}\nChanges: \n#{key[2].sub(/^==/,'Uploader:')}\n\n"
                end
-               return log_list.uniq.join("\n")
+               return str
        end
 
        def generate_snapshot( snpashot_name, dist_name, base_snapshot )