From 972c88c74482252e4fb7a53e58f6aac859e5f2ea Mon Sep 17 00:00:00 2001 From: "jiil.hyoun" Date: Mon, 29 Oct 2012 22:50:42 +0900 Subject: [PATCH] [Title] support change log [Type] Feature [Module] Toolchain / [Priority] Major [Jira#] [Redmine#] [Problem] [Cause] [Solution] [TestCase] Change-Id: I1435044a3fd3555d267a411041b40c645c71f318 --- package/changelog | 3 ++ package/pkginfo.manifest | 2 +- src/build_server/BinaryUploadProject.rb | 34 +++++++++++------------ src/build_server/GitBuildJob.rb | 37 +++++++++++++------------ src/build_server/RegisterPackageJob.rb | 8 +++--- src/common/package.rb | 2 +- src/pkg_server/distribution.rb | 6 ++-- src/pkg_server/packageServer.rb | 16 +++++++++-- 8 files changed, 61 insertions(+), 47 deletions(-) diff --git a/package/changelog b/package/changelog index 567718d..8a82a82 100644 --- a/package/changelog +++ b/package/changelog @@ -1,3 +1,6 @@ +* 1.2.10 +- Change log support +== hyoun jiil 2012-10-29 * 1.2.9 - Added distribution lock == hyoun jiil 2011-10-18 diff --git a/package/pkginfo.manifest b/package/pkginfo.manifest index ae55c99..0ed5485 100644 --- a/package/pkginfo.manifest +++ b/package/pkginfo.manifest @@ -1,5 +1,5 @@ Source : dibs -Version :1.2.9 +Version :1.2.10 Maintainer : taejun ha, jiil hyoun , donghyuk yang , donghee yang , sungmin kim 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 diff --git a/src/build_server/GitBuildJob.rb b/src/build_server/GitBuildJob.rb index b9b1e7b..5040ff8 100644 --- a/src/build_server/GitBuildJob.rb +++ b/src/build_server/GitBuildJob.rb @@ -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) diff --git a/src/build_server/RegisterPackageJob.rb b/src/build_server/RegisterPackageJob.rb index a95aed5..b7b5662 100644 --- a/src/build_server/RegisterPackageJob.rb +++ b/src/build_server/RegisterPackageJob.rb @@ -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 diff --git a/src/common/package.rb b/src/common/package.rb index 5be697c..a7c139f 100644 --- a/src/common/package.rb +++ b/src/common/package.rb @@ -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 diff --git a/src/pkg_server/distribution.rb b/src/pkg_server/distribution.rb index 8bd42e2..e301f58 100644 --- a/src/pkg_server/distribution.rb +++ b/src/pkg_server/distribution.rb @@ -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 diff --git a/src/pkg_server/packageServer.rb b/src/pkg_server/packageServer.rb index 80910fa..03da058 100644 --- a/src/pkg_server/packageServer.rb +++ b/src/pkg_server/packageServer.rb @@ -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 ) -- 2.34.1