From 7674a910adbda1a0341812146670c47971ae6432 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Mon, 2 Aug 2010 18:36:54 +0200 Subject: [PATCH 1/7] Change UpdateAssemblyInfo to use git. --- src/Tools/UpdateAssemblyInfo/Main.cs | 97 +++++++++---------- .../UpdateAssemblyInfo.csproj | 17 ++-- 2 files changed, 58 insertions(+), 56 deletions(-) diff --git a/src/Tools/UpdateAssemblyInfo/Main.cs b/src/Tools/UpdateAssemblyInfo/Main.cs index 7c1e4b1f79..b55bd229a9 100644 --- a/src/Tools/UpdateAssemblyInfo/Main.cs +++ b/src/Tools/UpdateAssemblyInfo/Main.cs @@ -14,7 +14,6 @@ using System.Runtime.CompilerServices; using System.Text; using System.Text.RegularExpressions; -using SharpSvn; using System.Threading; namespace UpdateAssemblyInfo @@ -29,6 +28,9 @@ namespace UpdateAssemblyInfo const string configFile2 = "Main/ICSharpCode.SharpDevelop.Sda/ICSharpCode.SharpDevelop.Sda.dll.config"; const string subversionLibraryDir = "Libraries/SharpSvn"; + const string BaseCommit = "69a9221f57e6b184010f5bad16aa181ced91a0df"; + const int BaseCommitRev = 6351; + public static int Main(string[] args) { try { @@ -54,8 +56,6 @@ namespace UpdateAssemblyInfo Console.WriteLine("Working directory must be SharpDevelop\\src!"); return 2; } - FileCopy(Path.Combine(subversionLibraryDir, "SharpSvn.dll"), - Path.Combine(exeDir, "SharpSvn.dll")); RetrieveRevisionNumber(); string versionNumber = GetMajorVersion() + "." + revisionNumber; UpdateStartup(); @@ -68,16 +68,6 @@ namespace UpdateAssemblyInfo } } - static void FileCopy(string source, string target) - { - if (File.Exists(target)) { - // don't copy file if it is up-to-date: repeatedly copying a 3 MB file slows down the build - if (File.GetLastWriteTimeUtc(source) == File.GetLastWriteTimeUtc(target)) - return; - } - File.Copy(source, target, true); - } - static void UpdateStartup() { string content; @@ -85,6 +75,7 @@ namespace UpdateAssemblyInfo content = r.ReadToEnd(); } content = content.Replace("-INSERTREVISION-", revisionNumber); + content = content.Replace("-INSERTCOMMITHASH-", gitCommitHash); if (File.Exists(globalAssemblyInfo)) { using (StreamReader r = new StreamReader(globalAssemblyInfo)) { if (r.ReadToEnd() == content) { @@ -106,6 +97,7 @@ namespace UpdateAssemblyInfo content = r.ReadToEnd(); } content = content.Replace("$INSERTVERSION$", fullVersionNumber); + content = content.Replace("$INSERTCOMMITHASH$", gitCommitHash); if (File.Exists(configFile) && File.Exists(configFile2)) { using (StreamReader r = new StreamReader(configFile)) { if (r.ReadToEnd() == content) { @@ -168,12 +160,50 @@ namespace UpdateAssemblyInfo } #region Retrieve Revision Number - static string revisionNumber = "0"; - static string ReadRevisionFromFile() + static string revisionNumber; + static string gitCommitHash; + + static void RetrieveRevisionNumber() + { + if (revisionNumber == null) { + if (Directory.Exists("..\\..\\.git")) { + ReadRevisionNumberFromGit(); + } + } + + if (revisionNumber == null) { + ReadRevisionFromFile(); + } + } + + static void ReadRevisionNumberFromGit() + { + ProcessStartInfo info = new ProcessStartInfo("cmd", "/c git rev-list " + BaseCommit + "..HEAD"); + info.RedirectStandardOutput = true; + info.UseShellExecute = false; + using (Process p = Process.Start(info)) { + string line; + int revNum = BaseCommitRev; + while ((line = p.StandardOutput.ReadLine()) != null) { + if (gitCommitHash == null) { + // first entry is HEAD + gitCommitHash = line; + } + revNum++; + } + revisionNumber = revNum.ToString(); + p.WaitForExit(); + if (p.ExitCode != 0) + throw new Exception("git-rev-list exit code was " + p.ExitCode); + } + } + + static void ReadRevisionFromFile() { try { using (StreamReader reader = new StreamReader(@"..\REVISION")) { - return reader.ReadLine(); + revisionNumber = reader.ReadLine(); + gitCommitHash = reader.ReadLine(); } } catch (Exception e) { Console.WriteLine(e.Message); @@ -181,40 +211,9 @@ namespace UpdateAssemblyInfo Console.WriteLine("The revision number of the SharpDevelop version being compiled could not be retrieved."); Console.WriteLine(); Console.WriteLine("Build continues with revision number '0'..."); - try { - Process[] p = Process.GetProcessesByName("msbuild"); - if (p != null && p.Length > 0) { - System.Threading.Thread.Sleep(3000); - } - } catch {} - return "0"; - } - } - static void RetrieveRevisionNumber() - { - - string oldWorkingDir = Environment.CurrentDirectory; - try { - // Change working dir so that the subversion libraries can be found - Environment.CurrentDirectory = Path.Combine(Environment.CurrentDirectory, subversionLibraryDir); - using (SvnClient client = new SvnClient()) { - client.Info( - oldWorkingDir, - (sender, info) => { - revisionNumber = info.Revision.ToString(CultureInfo.InvariantCulture); - }); - } - } catch (Exception e) { - Console.WriteLine("Reading revision number with SharpSvn failed: " + e.ToString()); - } finally { - Environment.CurrentDirectory = oldWorkingDir; - } - if (revisionNumber == null || revisionNumber.Length == 0 || revisionNumber == "0") { - revisionNumber = ReadRevisionFromFile(); - } - if (revisionNumber == null || revisionNumber.Length == 0 || revisionNumber == "0") { - throw new ApplicationException("Error reading revision number"); + revisionNumber = "0"; + gitCommitHash = null; } } #endregion diff --git a/src/Tools/UpdateAssemblyInfo/UpdateAssemblyInfo.csproj b/src/Tools/UpdateAssemblyInfo/UpdateAssemblyInfo.csproj index 799d4d846e..97f6294d8e 100644 --- a/src/Tools/UpdateAssemblyInfo/UpdateAssemblyInfo.csproj +++ b/src/Tools/UpdateAssemblyInfo/UpdateAssemblyInfo.csproj @@ -1,4 +1,5 @@ - + + Exe UpdateAssemblyInfo @@ -9,7 +10,6 @@ False False False - PdbOnly False Auto 4194304 @@ -17,7 +17,6 @@ 4096 4 false - false 1607 v2.0 app.manifest @@ -33,11 +32,15 @@ true TRACE + + Full + true + + + None + false + - - ..\..\Libraries\SharpSvn\SharpSvn.dll - False - From c190de5a0bdf3da410587954d67f56bb19d0f9ff Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Mon, 2 Aug 2010 19:04:51 +0200 Subject: [PATCH 2/7] Merge UpdateSetupInfo into UpdateAssemblyInfo. --- src/Main/GlobalAssemblyInfo.template | 2 +- src/Setup/SharpDevelop.Setup.wixproj.user | 6 - .../SharpDevelop.Setup.wixproj.user.template | 2 +- src/Setup/buildSetup.bat | 2 +- src/Tools/UpdateAssemblyInfo/Main.cs | 97 ++++---- src/Tools/UpdateAssemblyInfo/Readme.txt | 36 ++- src/Tools/UpdateSetupInfo/Main.cs | 232 ------------------ src/Tools/UpdateSetupInfo/Readme.txt | 36 --- .../UpdateSetupInfo/UpdateSetupInfo.csproj | 52 ---- src/Tools/UpdateSetupInfo/UpdateSetupInfo.sln | 18 -- 10 files changed, 84 insertions(+), 399 deletions(-) delete mode 100644 src/Setup/SharpDevelop.Setup.wixproj.user delete mode 100644 src/Tools/UpdateSetupInfo/Main.cs delete mode 100644 src/Tools/UpdateSetupInfo/Readme.txt delete mode 100644 src/Tools/UpdateSetupInfo/UpdateSetupInfo.csproj delete mode 100644 src/Tools/UpdateSetupInfo/UpdateSetupInfo.sln diff --git a/src/Main/GlobalAssemblyInfo.template b/src/Main/GlobalAssemblyInfo.template index 608bcb803a..82fc9283e8 100644 --- a/src/Main/GlobalAssemblyInfo.template +++ b/src/Main/GlobalAssemblyInfo.template @@ -29,7 +29,7 @@ internal static class RevisionClass public const string Major = "3"; public const string Minor = "2"; public const string Build = "0"; - public const string Revision = "-INSERTREVISION-"; + public const string Revision = "$INSERTREVISION$"; public const string MainVersion = Major + "." + Minor; public const string FullVersion = Major + "." + Minor + "." + Build + "." + Revision; diff --git a/src/Setup/SharpDevelop.Setup.wixproj.user b/src/Setup/SharpDevelop.Setup.wixproj.user deleted file mode 100644 index 12f38fb5bd..0000000000 --- a/src/Setup/SharpDevelop.Setup.wixproj.user +++ /dev/null @@ -1,6 +0,0 @@ - - - 1 - PRODUCTBUILDVERSION=$(SetupProductBuildVersion) - - \ No newline at end of file diff --git a/src/Setup/SharpDevelop.Setup.wixproj.user.template b/src/Setup/SharpDevelop.Setup.wixproj.user.template index 1fcf036d2f..2d8efbfe30 100644 --- a/src/Setup/SharpDevelop.Setup.wixproj.user.template +++ b/src/Setup/SharpDevelop.Setup.wixproj.user.template @@ -1,6 +1,6 @@ - $INSERTPRODUCTBUILDVERSION$ + $INSERTREVISION$ PRODUCTBUILDVERSION=$(SetupProductBuildVersion) \ No newline at end of file diff --git a/src/Setup/buildSetup.bat b/src/Setup/buildSetup.bat index d057bcd6bc..20cc7ea40f 100755 --- a/src/Setup/buildSetup.bat +++ b/src/Setup/buildSetup.bat @@ -1,4 +1,4 @@ del "bin\SharpDevelop.msi" -"..\Tools\UpdateSetupInfo\bin\UpdateSetupInfo.exe" +"..\Tools\UpdateAssemblyInfo\bin\Debug\UpdateAssemblyInfo.exe" %windir%\microsoft.net\framework\v2.0.50727\msbuild SharpDevelop.Setup.sln "/p:SharpDevelopBinPath=%CD%\..\..\bin" @IF %ERRORLEVEL% NEQ 0 PAUSE \ No newline at end of file diff --git a/src/Tools/UpdateAssemblyInfo/Main.cs b/src/Tools/UpdateAssemblyInfo/Main.cs index b55bd229a9..d8aec94b4d 100644 --- a/src/Tools/UpdateAssemblyInfo/Main.cs +++ b/src/Tools/UpdateAssemblyInfo/Main.cs @@ -21,16 +21,34 @@ namespace UpdateAssemblyInfo // Updates the version numbers in the assembly information. class MainClass { - const string templateFile = "Main/GlobalAssemblyInfo.template"; - const string globalAssemblyInfo = "Main/GlobalAssemblyInfo.cs"; - const string configTemplateFile = "Main/StartUp/Project/app.template.config"; - const string configFile = "Main/StartUp/Project/SharpDevelop.exe.config"; - const string configFile2 = "Main/ICSharpCode.SharpDevelop.Sda/ICSharpCode.SharpDevelop.Sda.dll.config"; - const string subversionLibraryDir = "Libraries/SharpSvn"; - const string BaseCommit = "69a9221f57e6b184010f5bad16aa181ced91a0df"; const int BaseCommitRev = 6351; + const string globalAssemblyInfoTemplateFile = "Main/GlobalAssemblyInfo.template"; + static readonly TemplateFile[] templateFiles = { + new TemplateFile { + Input = globalAssemblyInfoTemplateFile, + Output = "Main/GlobalAssemblyInfo.cs" + }, + new TemplateFile { + Input = "Main/StartUp/Project/app.template.config", + Output = "Main/StartUp/Project/SharpDevelop.exe.config" + }, + new TemplateFile { + Input = "Main/StartUp/Project/app.template.config", + Output = "Main/ICSharpCode.SharpDevelop.Sda/ICSharpCode.SharpDevelop.Sda.dll.config" + }, + new TemplateFile { + Input = "Setup/SharpDevelop.Setup.wixproj.user.template", + Output = "Setup/SharpDevelop.Setup.wixproj.user" + }, + }; + + class TemplateFile + { + public string Input, Output; + } + public static int Main(string[] args) { try { @@ -57,9 +75,7 @@ namespace UpdateAssemblyInfo return 2; } RetrieveRevisionNumber(); - string versionNumber = GetMajorVersion() + "." + revisionNumber; - UpdateStartup(); - UpdateRedirectionConfig(versionNumber); + UpdateFiles(); return 0; } } catch (Exception ex) { @@ -68,50 +84,29 @@ namespace UpdateAssemblyInfo } } - static void UpdateStartup() + static void UpdateFiles() { - string content; - using (StreamReader r = new StreamReader(templateFile)) { - content = r.ReadToEnd(); - } - content = content.Replace("-INSERTREVISION-", revisionNumber); - content = content.Replace("-INSERTCOMMITHASH-", gitCommitHash); - if (File.Exists(globalAssemblyInfo)) { - using (StreamReader r = new StreamReader(globalAssemblyInfo)) { - if (r.ReadToEnd() == content) { - // nothing changed, do not overwrite file to prevent recompilation - // every time. - return; - } + string fullVersionNumber = GetMajorVersion() + "." + revisionNumber; + foreach (var file in templateFiles) { + string content; + using (StreamReader r = new StreamReader(file.Input)) { + content = r.ReadToEnd(); } - } - using (StreamWriter w = new StreamWriter(globalAssemblyInfo, false, Encoding.UTF8)) { - w.Write(content); - } - } - - static void UpdateRedirectionConfig(string fullVersionNumber) - { - string content; - using (StreamReader r = new StreamReader(configTemplateFile)) { - content = r.ReadToEnd(); - } - content = content.Replace("$INSERTVERSION$", fullVersionNumber); - content = content.Replace("$INSERTCOMMITHASH$", gitCommitHash); - if (File.Exists(configFile) && File.Exists(configFile2)) { - using (StreamReader r = new StreamReader(configFile)) { - if (r.ReadToEnd() == content) { - // nothing changed, do not overwrite file to prevent recompilation - // every time. - return; + content = content.Replace("$INSERTVERSION$", fullVersionNumber); + content = content.Replace("$INSERTREVISION$", revisionNumber); + content = content.Replace("$INSERTCOMMITHASH$", gitCommitHash); + if (File.Exists(file.Output)) { + using (StreamReader r = new StreamReader(file.Output)) { + if (r.ReadToEnd() == content) { + // nothing changed, do not overwrite file to prevent recompilation + // every time. + continue; + } } } - } - using (StreamWriter w = new StreamWriter(configFile, false, Encoding.UTF8)) { - w.Write(content); - } - using (StreamWriter w = new StreamWriter(configFile2, false, Encoding.UTF8)) { - w.Write(content); + using (StreamWriter w = new StreamWriter(file.Output, false, Encoding.UTF8)) { + w.Write(content); + } } } @@ -119,7 +114,7 @@ namespace UpdateAssemblyInfo { string version = "?"; // Get main version from startup - using (StreamReader r = new StreamReader(templateFile)) { + using (StreamReader r = new StreamReader(globalAssemblyInfoTemplateFile)) { string line; while ((line = r.ReadLine()) != null) { string search = "string Major = \""; diff --git a/src/Tools/UpdateAssemblyInfo/Readme.txt b/src/Tools/UpdateAssemblyInfo/Readme.txt index 96b7452849..a089969917 100644 --- a/src/Tools/UpdateAssemblyInfo/Readme.txt +++ b/src/Tools/UpdateAssemblyInfo/Readme.txt @@ -1 +1,35 @@ -Read doc/technotes/Versioning.html +Assembly versioning: Please read doc/technotes/Versioning.html + + +Updates the SharpDevelop Setup information +------------------------------------------ + +Product Revision (Subversion revision number) + +With WiX 3 the package code and product code guids do not need to be generated by +this tool and can be autogenerated by WiX. + +The build server and the buildSetup.bat executes the UpdateSetupInfo tool before +building SharpDevelop.Setup.sln. The SharpDevelop.Setup project does not use the tool. + +Operation +--------- + +1) The SharpDevelop.Setup.wixproj.user is is generated each time the tool is run +based on the SharpDevelop.Setup.wixproj.user.template file. The product revision is inserted +into the newly generated file. + +2) The build server and buildSetup.bat will run the UpdateSetupInfo tool. +This is not done by the SharpDevelop.Setup project itself intentionally so +nothing changes when building the project from inside SharpDevelop. The +modified SharpDevelop.Setup.wixproj.user need not be checked into the +repository on each build on the build server. + +Creating Releases +----------------- + +When creating a release either the setup msi from the build server should be +used or that generated after running buildSetup.bat. This will revision number +if the current revision has changed. + + diff --git a/src/Tools/UpdateSetupInfo/Main.cs b/src/Tools/UpdateSetupInfo/Main.cs deleted file mode 100644 index 33ed23f861..0000000000 --- a/src/Tools/UpdateSetupInfo/Main.cs +++ /dev/null @@ -1,232 +0,0 @@ -// -// -// -// -// $Revision$ -// - -using System; -using System.Globalization; -using System.IO; -using System.Text; - -using SharpSvn; - -namespace UpdateSetupInfo -{ - /// - /// Creates the SharpDevelop.Setup.wixproj.user file based on the - /// SharpDevelop.Setup.wixproj.user.template. - /// - class UpdateApplication - { - /// - /// Path to the setup project relative to the UpdateSetupInfo.exe file. - /// - const string SetupProjectFolderRelativePath = @"..\..\..\Setup"; - - /// - /// Name of the setup template file. - /// - const string SetupTemplateFileName = "SharpDevelop.Setup.wixproj.user.template"; - - /// - /// Name of the setup project user file that will be generated. - /// - const string SetupProjectUserFileName = "SharpDevelop.Setup.wixproj.user"; - - const int SetupTemplateFileNotFoundReturnCode = 1; - const int UpdateSetupInfoExceptionReturnCode = 2; - - /// - /// The full filename including path to the setup template file. - /// - string setupTemplateFullFileName; - - /// - /// The full filename including path to the setup project user file that - /// will be generated. - /// - string setupProjectUserFullFileName; - - /// - /// The folder containing the UpdateSetupInfo application. - /// - string applicationFolder; - - /// - /// The file that contains the last revision number used to update the - /// template. - /// - string previousRevisionFileName; - - /// - /// The folder that contains the last revision number used to update the - /// template. - /// - string previousRevisionFolder; - - public UpdateApplication() - { - // Work out filenames. - applicationFolder = Path.GetDirectoryName(GetType().Assembly.Location); - string setupProjectFolder = Path.Combine(applicationFolder, SetupProjectFolderRelativePath); - setupProjectFolder = Path.GetFullPath(setupProjectFolder); - - setupTemplateFullFileName = Path.Combine(setupProjectFolder, SetupTemplateFileName); - setupProjectUserFullFileName = Path.Combine(setupProjectFolder, SetupProjectUserFileName); - previousRevisionFolder = Path.Combine(setupProjectFolder, @"bin"); - previousRevisionFileName = Path.Combine(previousRevisionFolder, "REVISION"); - - FileCopy(Path.Combine(Path.Combine(applicationFolder, subversionLibraryDir), "SharpSvn.dll"), - Path.Combine(applicationFolder, "SharpSvn.dll")); - - // Set current directory to a folder that is in the repository. - Environment.CurrentDirectory = setupProjectFolder; - } - - static void FileCopy(string source, string target) - { - if (File.Exists(target)) { - // don't copy file if it is up-to-date: repeatedly copying a 3 MB file slows down the build - if (File.GetLastWriteTimeUtc(source) == File.GetLastWriteTimeUtc(target)) - return; - } - File.Copy(source, target, true); - } - - public static int Main(string[] args) - { - try { - UpdateApplication app = new UpdateApplication(); - return app.Run(); - } catch (Exception ex) { - Console.WriteLine(ex.ToString()); - return UpdateApplication.UpdateSetupInfoExceptionReturnCode; - } - } - - public int Run() - { - // Read setup template contents. - if (!SetupTemplateFileExists) { - Console.WriteLine(String.Concat(SetupTemplateFileName, " not found. Unable to update setup information.")); - return SetupTemplateFileNotFoundReturnCode; - } - string template = ReadSetupTemplate(); - - // Get current revision. - string currentRevision = GetCurrentRevision(); - - // Populate setup template. - template = PopulateSetupTemplate(template, currentRevision); - - // Create setup user file. - SaveSetupUserFile(template); - - return 0; - } - - bool SetupUserFileExists { - get { return File.Exists(setupProjectUserFullFileName); } - } - - bool SetupTemplateFileExists { - get { return File.Exists(setupTemplateFullFileName); } - } - - string ReadSetupTemplate() { - using (StreamReader reader = new StreamReader(setupTemplateFullFileName, true)) { - return reader.ReadToEnd(); - } - } - - string PopulateSetupTemplate(string template, string revision) - { - return template.Replace("$INSERTPRODUCTBUILDVERSION$", revision); - } - - string GetNewGuid() - { - return Guid.NewGuid().ToString().ToUpperInvariant(); - } - - void SaveSetupUserFile(string contents) - { - using (StreamWriter writer = new StreamWriter(setupProjectUserFullFileName, false, Encoding.UTF8)) { - writer.Write(contents); - } - } - - const string subversionLibraryDir = @"..\..\..\Libraries\SharpSvn"; - - /// - /// Code taken directly from UpdateAssemblyInfo and the paths slightly modified. - /// - /// - /// The product build version maps to the Subversion revision number. - /// - string GetCurrentRevision() - { - string revisionNumber = null; - string oldWorkingDir = Environment.CurrentDirectory; - try { - // Set working directory so msvcp70.dll and msvcr70.dll can be found - Environment.CurrentDirectory = Path.Combine(applicationFolder, subversionLibraryDir); - - using (SvnClient client = new SvnClient()) { - client.Info( - oldWorkingDir, - (sender, info) => { - revisionNumber = info.Revision.ToString(CultureInfo.InvariantCulture); - }); - } - } catch (Exception e) { - Console.WriteLine("Reading revision number with Svn.Net failed: " + e.ToString()); - } finally { - Environment.CurrentDirectory = oldWorkingDir; - } - if (revisionNumber == null || revisionNumber.Length == 0 || revisionNumber == "0") { - revisionNumber = ReadCurrentRevisionFromFile(); - } - if (revisionNumber == null || revisionNumber.Length == 0 || revisionNumber == "0") { - throw new ApplicationException("Error reading revision number"); - } - return revisionNumber; - } - - string ReadCurrentRevisionFromFile() - { - using (StreamReader reader = new StreamReader(Path.Combine(applicationFolder, @"..\..\..\..\REVISION"))) { - return reader.ReadLine(); - } - } - - /// - /// Checks that the current revision matches the revision last used to - /// update the SharpDevelop.Setup.wixproj.user file. - /// - bool RevisionExists(string currentRevision) - { - // Read previous revision. - string previousRevision = ReadPreviousRevision(); - if (previousRevision != null) { - return previousRevision == currentRevision; - } - return false; - } - - /// - /// Reads the previous revision number from the Setup\bin\REVISION file. - /// - string ReadPreviousRevision() - { - if (File.Exists(previousRevisionFileName)) { - using (StreamReader reader = new StreamReader(previousRevisionFileName, true)) { - return reader.ReadLine(); - } - } - return null; - } - } -} diff --git a/src/Tools/UpdateSetupInfo/Readme.txt b/src/Tools/UpdateSetupInfo/Readme.txt deleted file mode 100644 index 7dcd735ddb..0000000000 --- a/src/Tools/UpdateSetupInfo/Readme.txt +++ /dev/null @@ -1,36 +0,0 @@ - -Updates the SharpDevelop Setup information ------------------------------------------- - -Product Revision (Subversion revision number) - -With WiX 3 the package code and product code guids do not need to be generated by -this tool and can be autogenerated by WiX. - -The build server and the buildSetup.bat executes the UpdateSetupInfo tool before -building SharpDevelop.Setup.sln. The SharpDevelop.Setup project does not use the tool. - -Operation ---------- - -1) The SharpDevelop.Setup.wixproj.user is is generated each time the tool is run -based on the SharpDevelop.Setup.wixproj.user.template file. The product revision is inserted -into the newly generated file. The last used revision is written to a REVISION -file which is put in the Setup\bin folder. This not in the repository and is only -used to stop the tool from regenerating the product guid if the revision number has not -changed. - -2) The build server and buildSetup.bat will run the UpdateSetupInfo tool. -This is not done by the SharpDevelop.Setup project itself intentionally so -nothing changes when building the project from inside SharpDevelop. The -modified SharpDevelop.Setup.wixproj.user need not be checked into the -repository on each build on the build server. - -Creating Releases ------------------ - -When creating a release either the setup msi from the build server should be -used or that generated after running buildSetup.bat. This will revision number -if the current revision has changed. - - diff --git a/src/Tools/UpdateSetupInfo/UpdateSetupInfo.csproj b/src/Tools/UpdateSetupInfo/UpdateSetupInfo.csproj deleted file mode 100644 index 67a6c9c828..0000000000 --- a/src/Tools/UpdateSetupInfo/UpdateSetupInfo.csproj +++ /dev/null @@ -1,52 +0,0 @@ - - - Exe - UpdateSetupInfo - UpdateSetupInfo - Debug - AnyCPU - {75E6D78C-DC66-40F1-90AC-F9F97ADE3506} - False - False - False - Auto - 4194304 - x86 - 4096 - 4 - false - bin - C:\Users\Daniel\AppData\Roaming\ICSharpCode/SharpDevelop3.0\Settings.SourceAnalysis - v2.0 - - - obj\Debug\ - False - DEBUG;TRACE - true - Full - True - - - obj\Release\ - True - TRACE - False - None - False - - - - ..\..\Libraries\SharpSvn\SharpSvn.dll - False - - - - - - - - - - - \ No newline at end of file diff --git a/src/Tools/UpdateSetupInfo/UpdateSetupInfo.sln b/src/Tools/UpdateSetupInfo/UpdateSetupInfo.sln deleted file mode 100644 index 4c9a4ced8d..0000000000 --- a/src/Tools/UpdateSetupInfo/UpdateSetupInfo.sln +++ /dev/null @@ -1,18 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -# SharpDevelop 3.1.0.3932 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UpdateSetupInfo", "UpdateSetupInfo.csproj", "{75E6D78C-DC66-40F1-90AC-F9F97ADE3506}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {75E6D78C-DC66-40F1-90AC-F9F97ADE3506}.Debug|Any CPU.Build.0 = Debug|Any CPU - {75E6D78C-DC66-40F1-90AC-F9F97ADE3506}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {75E6D78C-DC66-40F1-90AC-F9F97ADE3506}.Release|Any CPU.Build.0 = Release|Any CPU - {75E6D78C-DC66-40F1-90AC-F9F97ADE3506}.Release|Any CPU.ActiveCfg = Release|Any CPU - EndGlobalSection -EndGlobal From ef64ad91d5c57fed6d1f0c27aaf23513c72459dd Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Tue, 3 Aug 2010 11:55:27 +0200 Subject: [PATCH 3/7] Remove SVNChangeLogToXml --- doc/ChangeLog.template.html | 1018 +++++++++++++++++ doc/ChangeLog.xml | 555 --------- .../StartPage/Project/Src/ICSharpCodePage.cs | 5 +- src/Setup/Files.wxs | 2 +- src/Tools/SVNChangeLogToXml/Main.cs | 121 -- .../SVNChangelogToXml.csproj | 56 - .../SVNChangelogToXml.csproj.user | 1 - .../SVNChangeLogToXml/SVNChangelogToXml.sln | 18 - src/Tools/UpdateAssemblyInfo/Main.cs | 5 + 9 files changed, 1027 insertions(+), 754 deletions(-) create mode 100644 doc/ChangeLog.template.html delete mode 100644 doc/ChangeLog.xml delete mode 100644 src/Tools/SVNChangeLogToXml/Main.cs delete mode 100644 src/Tools/SVNChangeLogToXml/SVNChangelogToXml.csproj delete mode 100644 src/Tools/SVNChangeLogToXml/SVNChangelogToXml.csproj.user delete mode 100644 src/Tools/SVNChangeLogToXml/SVNChangelogToXml.sln diff --git a/doc/ChangeLog.template.html b/doc/ChangeLog.template.html new file mode 100644 index 0000000000..1f4fab202e --- /dev/null +++ b/doc/ChangeLog.template.html @@ -0,0 +1,1018 @@ + + + SharpDevelop ChangeLog + + +

+ SharpDevelop $INSERTVERSION$ ($INSERTDATE$) +

    +
  • Update IronRuby to version 1.1
  • +
  • Update NUnit to version 2.5.7
  • +
+

+ + + +

+ SharpDevelop 3.2 [3.2.0.5777] (05/08/2010) +

    +
  • Update NUnit to 2.5.5.10112
  • + +
  • Bug fixes
  • +
+

+ +

+ SharpDevelop 3.2 RC2 [3.2.0.5698] (4/14/2010) +

    +
  • IronRuby 1.0 support
  • +
  • IronPython 2.6.1 support
  • +
  • NUnit 2.5.4 support
  • +
  • SDR: Runtime-modifiable reports
  • +
+

+ +

+ SharpDevelop 3.2 RC 1 [3.2.0.5505] (2/14/2010) +

    +
  • IronRuby 1.0 RC2 support
  • +
  • IronPython 2.6.1 RC1 support
  • +
  • Microsoft F#, February 2010 CTP support
  • +
  • SHFB 1.8.0.3 support
  • +
  • SDR: Absolute and relative filenames for images
  • +
  • SDR: Zoom in Report Viewer
  • +
  • Fixed issue when building solution that had a mix of different project configurations
  • + +
  • Setup: SHFB and WiX help files no longer shipping with SharpDevelop
  • +
+

+ +

+ SharpDevelop 3.2 CTP [3.2.0.5396] (1/13/2010) +

    +
  • IronRuby 1.0 RC1 support
  • +
  • SharpDevelop Reports (SDR) re-integrated
  • +
  • Update Boo to 0.9.3.3457
  • +
+

+ +

+ SharpDevelop 3.1.1 [3.1.1.5327] (12/12/2009) + +

    +
  • IronPython 2.6 support
  • +
  • Smart indenting for Python
  • +
  • Update to NUnit 2.5.3.9345
  • +
  • Backports of debugger fixes
  • +
  • NRefactory and code completion fixes
  • +
+

+ +

+ SharpDevelop 3.1 [3.1.0.4977] (09/21/2009) +

    +
  • Update to NUnit 2.5.2
  • + +
  • Disable IME when ICSharpCode.TextEditor is used in .NET 4.0
  • +
  • NRefactory fixes: show members from COM Interop assembly, inner classes inside generic classes
  • +
+

+ +

+ SharpDevelop 3.1 RC 2 [3.1.0.4890] (09/06/2009) +

    +
  • Create new projects as x86 by default Blog Post
  • +
  • Python support improved (forms designer and code converter). Note: Forms designer has no project resources support in 3.1.
  • +
  • Rename ProjectTypeGuids.cs to work around bug in Visual Studio. Discussion Thread
  • + +
  • Update to PartCover 2.3
  • +
  • Update to Boo 0.9.2.3383
  • +
  • Update to SharpSvn 1.6004.1329
  • +
+

+ +

+ SharpDevelop 3.1 RC 1 [3.1.0.4545] (07/26/2009) +

    +
  • Improved Python Windows Forms Designer and Code Conversion
  • +
  • Debugging of Python application
  • +
  • Basic support for profiling Unit Tests
  • + +
  • Small UI enhancements (e.g. "Open in explorer" context menu command for directories in project browser)
  • +
  • Bugfixes
  • +
  • Update Mono.Cecil revision 134535, NUnit 2.5.1, WiX 3.0 (3.0.5419), IronPython 2.0.2, F# May 2009 CTP
  • +
+

+ +

+ SharpDevelop 3.1 Beta 1 [3.1.0.4077] (05/14/2009) +

    +
  • IronPython Windows Forms Designer
  • +
  • Profiler for Managed Applications
  • +
  • Subversion 1.6
  • + +
  • Update to Boo 0.9.1.3287
  • +
  • Update to WiX 3.0.5301
  • +
+

+ + +

+ SharpDevelop 3.0 Final [3.0.0.3800] (02/10/2009) +

    +
  • F# project options fixed
  • +
  • FormsDesigner assembly is strong-named
  • +
  • Update to Boo 0.9.0.3203
  • +
  • Lazy-loading of XML documentation for code completion
  • + +
  • Translation updates
  • +
+

+ + +

+ SharpDevelop 3.0 Release Candidate [3.0.0.3775] (01/22/2009) +

    +
  • F# addin improved on “F# not installed”
  • +
  • Performance improvements for code conversion
  • +
  • Improved auto-detection of FxCop
  • +
  • NRefactory fixes
  • +
  • Update Mono.Cecil to revision 122476
  • + +
  • Updated to WiX 3.0.4917.0
  • +
  • Update to Boo 0.9.0.3153
  • +
+

+ + +

+ SharpDevelop 3.0 Beta 3 [3.0.0.3683] (12/15/2008) +

    +
  • IronPython 2.0 final included
  • +
  • F# addin updated for September 2008 CTP
  • +
  • Updated to WiX 3.0.4714
  • +
  • Installer now checks that .NET 3.5 SP1 is installed
  • +
  • Breaking NRefactory changes
  • +
  • Text Editor memory and performance improvements
  • +
  • VB.NET formatting strategy partially rewritten
  • + +
  • Full support for project resources in the Windows Forms designer
  • +
  • Improved support for FxCop 1.36
  • +
  • Debugger: Watch pad is implemented
  • +
  • Debugger: Conditional breakpoints
  • +
  • Improved exception reporting
  • +
  • Add "SharpDevelop.exe /addindir:path" command line argument to allow testing addins without having to install them
  • +
+

+ + +

+ SharpDevelop 3.0 Beta 2 [3.0.0.3437] (8/22/2008) +

    +
  • StyleCop addin included
  • +
  • Read-only project support
  • +
  • Hex editor addin included
  • +
  • Reflector addin included
  • +
  • SharpRefactoring addin included
  • + +
  • Debugger: Console Pad (expression evaluation)
  • +
  • Debugger: Attach to process
  • +
  • Remove Windows.Forms dependency from ICSharpCode.Core
  • +
  • Update to WiX 3.0.4415
  • +
  • Update to IronPython 2.0 beta 4
  • +
  • Update to SHFB 1.7
  • +
  • Update NUnit to 2.4.8
  • +
  • Update Boo to 0.8.2
  • +
  • Remove unfinished Addins: SettingsEditor and WorkflowDesigner
  • +
  • Removed SharpServerTools
  • +
+

+ +

+ SharpDevelop 3.0 Beta 1 [3.0.0.2970] (2/19/2008) +

    +
  • Parallel build support for multi-core machines
  • +
  • IronPython language support has been added
  • + +
  • F# language support has been added
  • +
  • C# 3.0 code completion is implemented
  • +
  • The debugger infrastructure has been rewritten
  • +
  • Performance and stability work
  • +
  • NDoc has been replaced with Sandcastle
  • +
  • NCover has been replaced with PartCover
  • +
  • WiX 3.0 has been integrated
  • +
  • Mono and NAnt support no longer shipping in setup
  • +
+

+ +

+ SharpDevelop 2.2.1.2648 (8/8/2007) +

    +
  • Bug fix: When creating a new project, ${USER} ${DATE} in the standard header etc. was not replaced with values.
  • +
+

+ +

+ SharpDevelop 2.2.1.2639 (8/8/2007) +

    +
  • Includes SDR 2.2.0.235 (fixes wizard exception)
  • +
  • NUnit updated to 2.4.2
  • +
  • Bug fixes
  • +
+

+ +

+ SharpDevelop 2.2.0.2595 (6/28/2007) +

    +
  • Additional and improved templates
  • +
  • Boo support updated to version 0.7.8
  • +
  • NUnit support updated to version 2.4.1
  • +
  • WiX support updated to version 2.0.5325
  • +
  • Cecil updated to version 0.5
  • +
  • SharpDevelop Reports 2.2 included
  • + +
  • SharpDbTools has been removed from the 2.x series
  • +
+

+ +

+ SharpDevelop 2.1.0.2429 (3/7/2007 - Final) +

    +
  • Bug fixes
  • +
  • SharpDevelop Reports 2.1.0.125
  • +
+

+ +

+ SharpDevelop 2.1.0.2376 (2/9/2007 - RC1) +

    +
  • Bug fixes
  • +
  • WiX 2.0.4820.0
  • +
  • NSvn 1.0.0.2727
  • +
  • SharpDevelop Reports 2.1.0.105
  • + +
+

+ +

+ SharpDevelop 2.1.0.2201 (12/23/2006 - Beta 3) +

    +
  • Unit Testing News: Support for .NET 1.1
  • +
  • Unit Testing News: STA support and more
  • +
  • PDF Export support in SharpReport
  • +
  • XML Editor has a visual editing environment (tree view)
  • +
  • Solution configuration editor added
  • +
  • Custom tool support implemented
  • +
  • Change: MSBuild libraries are used instead of own implementation
  • +
  • Change: Asynchronous wait dialog added
  • +
  • Change: .NET 1.0 support dropped
  • +
+

+ +

+ + SharpDevelop 2.1.0.2006 (11/2/2006 - Beta 2) +

    +
  • Text editor performance improvements
  • +
  • Code completion useable in standalone text editor control
  • +
  • Resource toolkit added
  • +
  • Widgets assembly created
  • +
  • SharpReport reverse integration
  • +
  • Updated to NUnit 2.2.8
  • +
  • Updated to WiX 2.0.4415.0
  • +
  • Updated to boo-0.7.6.2351
  • +
  • Removed: Html export feature, Tip of the day dialog
  • +
  • Namespace cleanup, file header fixing
  • +
+

+ +

+ SharpDevelop 2.1.0.1825 (9/19/2006 - Beta 1) +

    + +
  • FxCop Support
  • +
  • Component Inspector
  • +
  • WiX Support
  • +
  • Incremental Search
  • +
  • Code Navigation History
  • +
  • List Data Sources in SharpReport
  • +
  • XPath Queries
  • +
  • Code Completion for Different Frameworks
  • +
  • GoTo XML Schema Definition
  • +
  • Targeting Different Frameworks
  • +
  • Hosting of SharpDevelop in 3rd Party Applications
  • +
+

+ +

+ SharpDevelop 2.0.1.1710 (8/24/2006) +

    +
  • Bug fixes
  • +
+

+ +

+ SharpDevelop 2.0.0.1591 (7/17/2006 - RTW) +

    +
  • Bug fixes
  • +
+

+ +

+ SharpDevelop 2.0.0.1462 (6/5/2006 - RC2) +

    +
  • Bug fixes
  • +
+

+ +

+ SharpDevelop 2.0.0.1413 (5/17/2006) +

    +
  • Debugger improvements
  • +
  • SharpDevelop2 always runs as a 32 Bit process
  • +
  • Bug fixes in project subsystem and other areas
  • +
+

+ + +

+ SharpDevelop 2.0.0.1291 (4/12/2006) +

    +
  • Improvements: Debugger, Boo support, Project subsystem
  • +
  • Added: ASP.NET templates
  • +
  • Focus for Beta 3: Bug fixes
  • + +
+

+ +

+ #develop 1.1.0.2124 (2/14/2006) +

    +
  • Minor fixes
  • +
+

+ +

+ SharpDevelop 2.0.0.1135 (2/12/2006) +

    +
  • Code Coverage
  • +
  • Right-to-left fixes
  • +
  • Support for Mono's GAC
  • +
  • Beta 1 (12/19/2005) feature set improved and polished
  • + +
+

+ +

+ #develop 1.1.0.2118 (12/12/2005) +

    +
  • SharpReport refactoring
  • +
  • IME fixes
  • +
  • Start Page: link buttons replace JavaScript to run in High Security settings
  • +
  • CloseView fixes
  • +
+

+ +

+ #develop 1.1.0.2081 (9/25/2005) +

    +
  • SharpReport is separated out into a library
  • +
  • NAnt tenplate added
  • +
  • Bug fixes in code conversion
  • +
  • Setting saving improved
  • +
+

+ +

+ #develop 1.1.0.2019 (8/7/2005) +

    +
  • Updated WiX to v2.0.3116.0
  • +
  • Selection & scrolling support in console addin
  • +
  • Sortable Task View
  • +
  • Netmodules support
  • +
  • #report improvements
  • +
  • Forms Designer bug fixes
  • +
+

+ +

+ #develop 1.1.0.1964 (5/19/2005) +

    +
  • Command window addin
  • +
  • #report localized
  • +
  • Help 2.0 improvements
  • +
  • Editor fixes (selection issues, freezing)
  • +
  • Web References now async
  • +
  • Updated Mono support
  • +
+

+ +

+ #develop 1.1.0.1913 (4/28/2005) +

    +
  • NAnt Addin
  • +
  • Help 2.0-compliant Help Addin
  • +
  • XML Editor Addin (highlighting, completion and more)
  • +
  • PInvoke Addin
  • +
  • Web References
  • +
  • #report Addin
  • +
  • Read-only line manager (used for InitializeComponent)
  • +
  • Updates to the WiX backend binding
  • +
  • Third party tools updated to latest revisions
  • + +
+

+ +

+ #develop 1.0.3.1761 (12/21/2004) +

    +
  • NDoc updated to v1.3
  • +
  • Code completion performance improvements
  • +
  • Referenced assemblies are no longer locked
  • +
  • Bug fixes across the board
  • +
+

+ +

+ #develop 1.0.2.1709a (11/30/2004) +

    + +
  • Forms designer bug fixed (InitializeComponent method code mangling)
  • +
  • SharpZipLib moved to a separate repository
  • +
  • Project converter fixes
  • +
  • C++ linker invocation fix
  • +
  • Flickering of new view content fixed
  • +
  • NRefactory removed
  • +
+

+ +

+ #develop 1.0.2.1709 (11/10/2004) +

    +
  • Loading of MC++ assemblies works (DirectX now has code completion)
  • +
  • Resource handling improvements when importing VS.NET projects
  • +
  • Improvements for the Addin Scout
  • +
  • New Ctrl+Mousewheel text zoom feature
  • +
  • Font selection now directly implemented in the General tab for text editor options
  • +
  • Fix for "No form designer tab when combine name contains a space"
  • +
+

+ +

+ #develop 1.0.1.1649 (10/07/2004) +

    +
  • Setup: GAC registration / deregistration now handled properly
  • +
  • Setup: User settings are no longer removed on uninstall (starting with 1.0.1)
  • +
  • UI: 20 languages are now shipping with #develop
  • +
  • Internal: all assemblies now receive appropriate version information on build
  • +
  • Tools: NProf 0.9alpha added
  • +
  • Tools: VB.DOC integration updated to 0.4
  • +
  • CC: Various fixes, please see ChangeLog.xml
  • +
  • UI: Toolbox and editor window scrollbars are now sized properly
  • +
  • Setup: Cleanup in tools
  • +
+ +

+ +

+ #develop 1.0.0.1550 (9/12/2004) +

    +
  • Bug fix in output / task pane for compilation
  • +
  • Translation updates
  • +
+

+ +

+ #develop 1.0.0.1543 (9/11/2004) +

    +
  • Ctrl+Space for VB.NET
  • +
  • Direct import of VS.NET .csproj and .vbproj files
  • +
  • Code converter improvements
  • +
  • NUnit 2.2 integrated
  • +
  • Bug fixes
  • + +
+

+ +

+ #develop Fidalgo RC3 (8/23/2004) +

    +
  • Configuration selection added to toolbar
  • +
  • New Class Wizard rewrite
  • +
  • C# to VB.NET conversion (and vice versa) fixes
  • +
  • Bug fixes across the board
  • +
+

+ +

+ #develop Fidalgo RC2 (6/27/2004) +

    + +
  • Bug fixes (details see Subversion change log)
  • +
  • Code completion: bug fixing, regression checks
  • +
  • Setup: register file types, GAC assembly install, size
  • +
+

+ +

+ #develop Fidalgo RC1 (6/16/2004) +

    +
  • Entire project conversion VB.NET to C# and vice versa
  • +
  • Project import now works for ASP.NET projects
  • +
  • Bug fixes (details see Subversion change log)
  • +
  • Performance improvements (details see Subversion change log)
  • +
  • New setup: OS restrictions are enforced (Windows 2000+)
  • +
+ +

+ + +

+ #develop Fidalgo Beta 1 (5/5/2004) +

    +
  • Ctrl+Space completion
  • +
  • Folding fully integrated
  • +
  • NUnit integration (via a pad)
  • +
  • Assembly Analyzer
  • +
  • C++.NET, ILAsm, WiX backend bindings
  • +
  • Mini Class Browser panel added to source views
  • +
  • VB.NET to C# converter included
  • +
  • Alt+Ins code generator revamped (formerly Ctrl+W)
  • +
  • Improvements to File Templates
  • +
  • Improvements to VS.NET exporter/importer (VB.NET especially)
  • +
  • Printing support added
  • +
  • New DockPanel Suite integrated, Magic library entirely removed
  • + +
+

+ +

+ 0.99b Beta (3/3/2004) +

    +
  • Improvements of C# and VB.NET Forms Designers
  • +
  • Improvements to VB.NET Code Completion
  • +
  • Improvements of the VS.NET Import/Export Feature
  • +
  • Install/Uninstall batch files for Nunit and NProf
  • +
  • C# Project Options Dialog Changed
  • +
+

+ +

+ 0.99 Beta (2/20/2004) + +

    +
  • VB.NET Forms Designer
  • +
  • VB.NET Code Completion
  • +
  • Database scout for exploring databases (needs current MDAC on your machine!)
  • +
  • C# code completion improvements (eg externs and array return types)
  • +
  • Various forms designer related issues fixed such as main menu bugs
  • +
  • Tool updates: NAnt, NUnit, NProf, NSIS installer
  • +
+

+ +

+ 0.98 Beta (10/23/2003) +

    +
  • Rewrite of the text editor
  • +
  • Syntax hightlighting definition editor added
  • +
  • Code completion db wizard cycles #develop on initial startup (better performance)
  • +
  • Improvements to #assembly and assembly scout
  • +
  • Icons for menus and toolbars have been changed (in general: lots of UI improvements)
  • +
  • Code completion improvements
  • +
+

+ +

+ 0.97 Beta (09/12/2003) +

    +
  • MagicLibrary menus removed for stability and performance reasons
  • +
  • UtilityLibrary toolbars removed and exchanged with CommandBars library
  • +
  • Improved #coco parser generator
  • +
  • Improved lexer layer
  • +
  • Type resolver improved
  • +
  • Lots of missing localizations added
  • +
  • CSharpParser.dll replaced with #refactory
  • +
  • Switched from multiple layout manager to SDI
  • +
  • NUnit 2.1 integration
  • +
  • NProf integration
  • +
  • Forms Designer bug fixes
  • +
  • Option panel and project property dialog boxes sport common look and feel
  • +
  • IViewContent changes for documents with multiple views
  • +
  • Directory layout changes
  • +
+

+ +

+ 0.96 Beta (08/23/2003) +

    +
  • Faster loading
  • +
  • Forms Designer menu editor added
  • +
  • C# to VB.NET converter
  • +
  • User controls are automatically reloaded in referencing project (on build)
  • +
  • Before and After Build scripts added
  • +
  • Component selection dropdown added to property grid
  • +
  • Property grid context menu
  • +
  • Tooltips in task pane
  • +
  • File reload (Ctrl+U) prompts for reload
  • +
  • Sidebar configuration dialog
  • +
  • Assembly Scout reworked
  • +
+

+ +

+ 0.95 Beta (04/30/2003) +

    +
  • New exception dialog
  • +
  • "Module" is now a compile target for both C# and VB.NET
  • +
  • Various class browser fixes
  • +
  • Improvements in the RegExTk
  • +
+

+ +

+ 0.94b Beta (02/03/2003) +

    +
  • Works on Windows 98 again (FileSystemWatcher is optional)
  • +
  • Keys which are reached via AltGr work now ("@-Bug")
  • +
  • Toolbox fixed when multiple forms are open
  • +
  • Localized help files work (ms-help URI issue)
  • +
  • Core compiles on Mono
  • +
+

+ +

+ 0.94 Beta (01/30/2003) +

    +
  • Added Code AutoInsert feature (Ctrl+W)
  • +
  • Events can now be added via the forms designer
  • +
  • .NET Framework SDK help and DirectX 9 help can now be integrated (Markus Palme)
  • +
  • Custom controls option for the #develop forms designer (Denis Erchoff)
  • +
  • Added Xml Documentation preview feature (Ctrl+Q)
  • +
  • Included initial version of a VS.NET solution importer
  • +
  • The #develop core has been split out into a separate assembly
  • +
  • Basic HTML Editor implemented
  • +
  • #Refactory and #ZipLib included in the #develop project
  • +
  • Updates to #Unit
  • +
  • Project templates expanded to support creating of full-featured combines
  • +
  • New Start Page has been added
  • +
  • Added Projects and Combines option panel
  • +
  • Expanded the toolbar with new icons and design
  • +
+

+ +

+ 0.93 Beta (12/19/2002) +

    +
  • Assembly scout (object browser) thoroughly reworked by Georg Brandl
  • +
  • Regular Expression toolkit allows to generate assemblies (Markus Palme)
  • +
  • More templates have been added
  • +
  • Bookmark fixes
  • +
  • Chinese translations added (traditional & simplified)
  • +
  • New Register file types panel in the Options dialogbox
  • +
  • Gutter reworked (look & feel)
  • +
  • RTF Cut/Copy/Paste
  • +
  • Forms Designer: control sizing bugs fixed
  • +
  • Lots of small bug fixes
  • +
+

+ +

+ 0.92 Beta (10/25/2002) +

    +
  • Forms designer refactored
  • +
  • Included new NDoc version
  • +
  • 'Long delay' bug when opening large non C# projects fixed
  • +
  • Enum code completion crash bug fixed
  • +
  • The cursor+tab keys now work in the forms designer (Cut/Copy/Paste too)
  • +
  • The core now recognizes a load sequence
  • +
  • Bugfixes in the COM reference import code
  • +
  • New VBFormattingStrategy
  • +
  • Forms Designer: new XmlGenerator - XML Form format changed
  • +
  • Java/VB.NET project structures refactored
  • +
  • Removed #cvs and #ziplib from the source tree (SharpCvs no longer supported)
  • +
+

+ +

+ 0.91 Beta (9/22/2002) +

    +
  • Improvements to the forms designer (Cut/Copy/Paste works, Format menu, selection, context menus)
  • +
  • Improvements to the type resolver for code completion
  • +
  • Setting the startup project works
  • +
  • Search & Replace has been refactored
  • +
  • Find in Files added
  • +
  • Wildcard search strategy added
  • +
  • COM Reference panel fixed
  • +
  • Observed file save methods implemented
  • +
  • Regular Expressions Toolkit (see Tools menu)
  • +
  • VB.DOC integration (Markus Palme)
  • +
+

+ +

+ 0.90 Beta (9/5/2002) +

    +
  • Code Completion and Method Insight added
  • +
  • Improvements to the Forms Designer: C# and VB.NET code generation
  • +
  • COM References are integrated, thanks to Poul Staugaard
  • +
  • Reflection Parser Layer and persistence
  • +
  • Added IME support, thanks to Shinsaku Nakagawa
  • +
  • Help browser is improved, now shipping with #ziplib help too
  • +
  • Code Completion Database Wizard added
  • +
  • Changed the csc/vbc exe path get routine (used to use the registry)
  • +
  • Ambiences added
  • +
  • IsValidFileName added to FileUtilityService
  • +
  • Option dialogs and wizards changed in style and size
  • +
  • Text area control refactoring
  • +
+

+ +

+ 0.89 Beta (8/18/2002) +

    +
  • Initial implementation of a Windows Forms Designer (help appreciated)
  • +
  • Support for Mono: you can now choose either csc.exe or mcs.exe, as well as the execution environment
  • +
  • Folding is re-integrated
  • +
  • XML formatting strategy
  • +
  • Object browser was refactored by Markus Palme
  • +
  • #develop help is integrated with a help browser
  • +
  • Project options dialog redesigned
  • +
  • Toolbar is now more functional
  • +
  • C# backend binding: treat warnings as errors passed to csc.exe
  • +
  • Parser refactoring and new parser data structures
  • + +
  • NDoc works reliably in exe and source distributions
  • +
  • Namespace cleanups
  • +
  • Project browser refactoring allows for more varied backend bindings
  • +
  • Project file format changed to match new project subsystem
  • +
+

+ +

+ 0.88b Beta (5/29/2002) +

    +
  • Limit of 2178 lines per file is removed
  • +
  • GAC assemblies correctly included in build runs
  • +
  • Tool Scout reworked
  • +
  • Read-only attributes on files or backup copies no longer throw exceptions
  • +
  • Save dirty files bug fixed for SDI
  • +
  • GAC assemblies correctly display in object browser
  • +
  • Search in open files and project fixed
  • +
+

+ +

+ 0.88a Beta (4/24/2002) +

    +
  • Regular expression search added
  • +
  • Code completion and Class Scout are back for C#
  • +
  • Path dependency removed - C# compiler is automatically located
  • +
  • Load/Save options panel (line terminators for other platforms now supported)
  • +
  • #unit has been integrated (powerful unit testing framework)
  • +
+

+ +

+ 0.87c Beta (2/20/2002) +

    + +
  • Setup program for SharpDevelop (thanks to Brent R. Matzelle)
  • +
  • New Class Wizard from Donald Kackman
  • +
  • New SDI layout preview (try it in Tools/Options/Menu Style)
  • +
  • Bug fixes (details in ChangeLog.txt)
  • +
+

+ +

+ 0.87b Beta (2/3/2002) +

    +
  • The "state" of text files is saved & restored. (bookmarks, caret, highlighting, etc.)
  • +
  • External tools working on all OS's
  • +
  • PHP and C++ syntax highlighting added
  • +
  • Bugs fixed that were present in .87a
  • +
+ +

+ +

+ 0.87a Beta (1/22/2002) +

    +
  • New internal TextRepresentation data structure
  • +
  • New search & replace data structure
  • +
  • Preview of add-in infrastructure
  • +
+

+ +

+ 0.85 Milestone (12/14/2001) +

    +
  • Class Browser reintroduced
  • + +
  • Export project to HTML (see samples here)
  • +
  • NANT included to build SharpDevelop
  • +
  • Visual CVS preview
  • +
  • UI changes: VS.NET-style flat status bar added, standard UI to internal Web browser
  • +
  • Bug fixes: fixed many exception-generating scenarios
  • +
+

+ +

+ 0.80 Milestone (9/28/2001) +

    +
  • New options dialog boxes (IDE and project)
  • +
  • 'Deploy Project' functionality added
  • +
  • Side bar with drag&drop support (actually called Toolbar)
  • + +
  • Included DOC.NET, a documentation generator for C# programs
  • +
  • Linked with the Alexandria library for new GUI features
  • +
  • SharpDevelop configuration is now saved in user's Application Data folder instead of My Documents
  • +
  • For more detailed changes, see ChangeLog.txt in the docs folder
  • +
+

+ +

+ 0.75 Beta, Interim Beta (8/3/2001) +

    +
  • Preview of Code Completion (works with Framework classes only)
  • +
  • Testing framework compatible with NUnit integrated
  • +
  • Integrated CVS support via NetCvsLib
  • +
  • Translations for German, French, Spanish and more (see docs/languages/ folder)
  • +
  • Workspace state is now saved with project
  • +
  • Combines ("super projects") added (can contain other projects)
  • +
  • Comment tag inserter added (use /* or /// comments and you'll see)
  • + +
  • Unicode now supported
  • +
  • Performance enhancements
  • +
  • Volume labels are displayed in the File Scout
  • +
  • Reloading files from disk works with Ctrl+U
  • +
  • All Yes/No/Cancel dialog boxes are gone
  • +
  • For more detailed changes, see ChangeLog.txt in the docs folder
  • +
+

+ +

+ 0.70 Beta, .NET SDK Beta 2 Release (6/20/2001) +

    +
  • Entirely new File and Project Template architecture
  • +
  • Localization of the UI to German, Italian and Portugese
  • +
  • Language Modules, supporting C# and VB.NET
  • +
  • Standard, Office 2000 and VS.NET-style menus
  • +
  • Docking toolbar/window support
  • + +
  • Reference browser
  • +
  • Internal Web browser
  • +
  • Bugfixes, more exception handling code
  • +
+

+ +

+ 0.60beta Milestone 1 (2/7/2001) +

    +
  • File Scout added
  • +
  • Class Scout added
  • +
  • Replace dialog is working
  • +
  • HTML/XML viewer included
  • +
  • Dialogs for New File & New Project
  • +
  • Rudimentary resource file editor included
  • +
  • Syntax coloring for "embedded" languages
  • + +
  • Tons of bugfixes
  • +
+

+ +

+ 0.52beta (12/15/2000) +

    +
  • file filter is now configurable
  • +
  • form start positions are now saved in the config file
  • +
  • some minor bug fixing & spell checking ...
  • +
+

+ +

+ 0.51beta + +

    +
  • Tip of the day box added
  • +
  • Options became one menu item (the seperate options aren't removed, because I tested this not thoroughly ...)
  • +
+

+ +

+ 0.5beta +

    +
  • some syntax highlighting bugs fixed
  • +
  • line number view is a separate class / bookmarks are shown when line numbers are turned off
  • +
  • Menu item icons (very important for stability & speed and it looks fine)
  • +
+

+ +

+ 0.41beta - some bugfixes : +
    +
  • project loading bug fixed
  • +
  • empty file load bug fixed
  • +
  • window menu bug fixed
  • +
  • some more bugs fixed, which I can't remember
  • +
  • new word count dialog, menu item descriptions
  • +
+

+ +

+ 0.4beta +

    +
  • new/updated event system, same base class for : MenuActions, EditActions and Plugins
  • +
  • basic plugin support
  • +
  • XML definitions for MenuActions / EditActions
  • + +
  • the paths in your project file are now relative, you can copy your project to any location, + from now on the Sharp Develop project file is part of the distribution. + (old projects are converted automatically) +
  • +
+

+ +

+ 0.3beta +

    +
  • More complex syntax highlighting, now supports highlighting for HTML and XML + and is able to support a wide range of highlighting schemes. +
  • +
  • faster scrolling routines
  • +
  • Mouse wheel support
  • +
  • FileWatcher added (the prompt for reload thing, when a file has been changed)
  • +
  • HTML exporter
  • +
  • In the Project Explorer should now work: +
      +
    • adding a new directory (isn't created until you put a file in it)
    • +
    • renaming files/directories
    • +
    • adding files
    • +
    +
  • +
+

+ +

+ 0.2alpha +

    +
  • Customizeable Tool menu
  • +
  • Updates in: Project Explorer, Find dialog
  • +
  • Bookmarks
  • +
  • Code templates
  • +
  • XML files for config / projects
  • +
  • Default libraries (the compiler doesn't notability slow down if I + include ALL (I hope) DLL's, no more "which DLL do I need ?" questions +
  • +
  • Compile error output window - now you can see (and jump to) + your erros in the IDE itself +
  • +
  • many various little menu options & bugfixes
  • + +
  • Syntax highlighting is now configurable (through XML file options/Syntax.xml)
  • +
+

+ +

+ 09/11/2000 - Project Start +

+ + \ No newline at end of file diff --git a/doc/ChangeLog.xml b/doc/ChangeLog.xml deleted file mode 100644 index 3538c6cd3e..0000000000 --- a/doc/ChangeLog.xml +++ /dev/null @@ -1,555 +0,0 @@ - - Fixed compiler warning in Boo AddIn. - Fixed forum-10068: members from COM Interop assembly not shown in code completion. - Fixed forum-10067: incorrect indentation for nested if-statements without braces. - fixed SD2-1568 - Using unsupported evaluation features in conditional breakpoints causes an exception - added workaround to fix http://community.sharpdevelop.net/forums/p/10063/27905.aspx - Revert r4902. - * Src/PrettyPrinter/IOutputAstVisitor.cs: Exposed some properties - from the abstract output formatter into the interface. - Disable IME when ICSharpCode.TextEditor is used in .NET 4.0. - fixed some localization issues in Profiler options panels - Update string resources. - Fixed ArgumentOutOfRangeException in Boo forms designer and added workaround for another possible ArgumentOutOfRangeException (also when leaving the designer). - Fixed IsAccessible for "protected internal" members. (forum-9974) - - updated English translation -- updated German translation -- fixed small bug in QueryView -- fixed localization issues in GeneralOptionsPanel - Immediately rename form class when a form is renamed in the designer (avoids side-effects in IViewContent.Save). -This fixes forum-9916 (error closing Sharp Development IDE after renaming a form). - Fixed SD2-1588 - Automatic SVN add of forms designer .resx file fails. -The stream which the resource file is saved to is now closed before the SVN add operation to unlock the file. -Also fixed the .resx file being added to the project prematurely and not being added to SVN when multiple designer views for the same form are opened before the .resx file has been saved to disk for the first time. - Fix SD2-1584 - VB .NET snippet parser crashes on invalid syntax - Fix SD2-1587 - Duplicate sections added to solution file on each save - fixed SD2-1526 - Save As shows a Save As dialog box for each view attached to the file - Disabled project resources in the python form designer. - Added missing resource strings for the profiler - - Top 20 displays user code only -- Added functionality to expand selected hot paths -- fixed percentage of parent - Temporarily disable FileChangeWatcher while renaming files. Should fix forum-10029. - missed to commit some changes (never commit around 12 PM!) - Profiler: -- added translation for the profiler UI -- added functionality to control data collection (only profile parts) -- added new columns (Time spent (self); Time spent/call, Time spent (self)/call) -- added hot path indicators -- Top 20 tab is now sorted by TimeSpentSelf - -* fixed bug in LocalizeExtension - Profiler: -- added new data columns -- added hot path indicator if method takes more than 20% time of the parent node - RC 2 designation of setup - Reparse when return is pressed. - Profiler: fixed "Find references" for methods without source code - implemented Find References for the profiler tree view - Profiler: -- fixed memory leak -- removed ICSharpCode.SharpDevelop.Profiling namespace -- added filter for unit tests when selecting "Run with profiler" - Set /32BIT+ on booc.exe - Missing StringParser.Parse call in ApplicationSettings panel - Put new build options into the UI (BOO-1228) - Update to Boo 0.9.2.3383. - Code coverage results now read from new PartCover 2.3's new results file format. - Update COM Guids written to registry for PartCover 2.3 - Forms designer: Fixed SD2-1531 - CenterHorizontally / CenterVertically: icons are swapped. - NRefactoryASTConvertVisitor: Apply IndexerNameAttributes to the names of the converted indexers. -This fixes the ReflectorAddIn being unable to find such indexers in Reflector. - ReflectorAddIn: Fixed finding nested classes and members thereof. - profiler: modified DefaultProfiler implementation to show error message instead of throwing NotSupportedException in case no profiler was found. - Create new projects as x86 by default - AnyCPU leads to programs running as 64-bit process without ever being tested that way. - Fix unit tests. - Replace equals sign with space to match new PartCover command line syntax. - Upgrade to PartCover 2.3. -Set /32BIT flag on PartCover.exe - Change label "Goto line number" -> "Go to" to better reflect the features of the new GotoDialog - * Src/PrettyPrinter/CSharp/PrettyPrintOptions.cs: -* Src/PrettyPrinter/CSharp/CSharpOutputVisitor.cs: Added brace - forcement options - this enables to change bracing for some - constructs. - Python code converter now attempts to detect property references and adds a this reference. - Python code converter now converts type reference expressions. - Python code converter now supports read-only and write-only property conversions. - Python forms designer now supports negative doubles as method parameters. - Fixed SD2-1494 - 'Move class to file' duplicates delegate declarations -Based on patch by Bruno Marques. - Fixed bug in python forms designer failing to convert an integer into a double when loading a form with a property of type double. - Python forms designer now generating AnchorStyles properties. - Fixed output for overloaded unary operators. - Fixed SD2-1572 - operators are shown as nameless methods in code completion - Don't generate code for attributes of base class in override code completion. - Python forms designer shows a more useful error message if it is unable to find a type to create a local variable. - Fixed SD2-1581 - GetterModifiers/SetterModifiers not loaded in ReflectionProperty and CecilReader - Python forms designer now calls all methods and explicit interface methods when loading InitializeComponent method. - Fixed squashed controls on debug symbols options panel. - Python forms designer now converts constructor parameters to the correct objects when loading a form. - Python form designer now supports assigning a local variable to a property on a control. - Fixed null reference exception in form designer's NameCreationService when generating code with the python code dom serializer. - Python forms designer now generates code using a code dom serializer. - Fixed NullReferenceException in unit tests pad when SharpDevelop was closed while the parser thread was still running. - Fixed SD2-1582: Code completion lists multiple entries for partial classes - Rename ProjectTypeGuids.cs to work around bug in Visual Studio. (http://community.sharpdevelop.net/forums/t/9580.aspx) - TextArea: Always set the owner of the tooltip when shown. -Fixes SD2-1543 - Text editor tooltips only work in the file opened first when secondary monitor present. -Also fixes problems with showing tooltips when TextEditors are used on different levels in the form hierarchy within the same application. - Python forms designer now generates code for the content of nested custom collections. - Python forms designer now generates code for the items inside a custom collection on a control. - Added support for TableLayoutPanel RowStyles and ColumnStyles in Python forms designer. - Child controls on a TableLayoutPanel are now supported in the Python forms designer. - Fixed null reference exception in the python forms designer when generating code for properties that have a null property value. - Python forms designer now generates a multline string for the RichTextBox.Text property. - Filename with dot character is now correctly shown in the Errors window when compiling a python file that has syntax errors. - Recompiled SharpSvn using VS2008. - Update to SharpSvn 1.6004.1329. (SVN 1.6.4) - Python forms designer can now load a SplitContainer containing child controls. - MonthCalendar SelectionRange and DateTime[] properties now supported in Python forms designer. - Added support for list view groups in Python forms designer. - Python forms designer now uses InstanceDescriptor to generate code for object creation. - Fixed null reference exception when generating code in the Python forms designer for a non-IComponent object's AddRange method. - Inherited tooltips now supported in the Python forms designer. - Public inherited controls now supported in Python forms designer. - Inherited protected controls are now supported in the Python forms designer. - Fixed SD2-1465 - Convert integer casts correctly between VB and C# - Fixed forum-9858: problem with sizeof operator converting from C# to VB.NET - Fixed null reference exception when loading/generating code in the python forms designer when a control's property was null. - Python forms designer no longer generates code for controls in inherited base class. - Python forms designer now creates an instance of the form's base class instead of just a Form or UserControl when loading a form in the designer. - Fixed forum-9843: missing icon in project browser for .resx files. - Python forms designer can now design forms that do not directly inherit from Form or UserControl. - Profiler: fixed display of meta data tokens VAR and MVAR - Refactored the set property value code out of the PythonComponentWalker class. - Fixed failing unit test in Python addin. - Python forms designer now loading/generating forms with nested properties (e.g. Button.FlatAppearance) - Correct code generated for Default cursor in python forms designer. - Installer now displays SharpDevelop 3.1 RC 1. - Handle SVN errors when creating a new project. - Two tree nodes with their NodeFont property set can now be loaded into the python forms designer. - Fixed build. - Fixed SD2-1406: More Missing String Resources - Fixed SD2-1525: Error creating new files when default encoding was set to Unicode. - Fixed SD2-1550 - Exception creating new F# project when F# compiler is not installed - Fixed InvalidOperationException in ReflectorAddIn when the 'run as administrator' compatibility option is set on Reflector.exe. - Disable upgrades from SharpDevelop 3.0 to 3.1 (the user will be prompted to uninstall 3.0 first). Fixes SD2-1565 - Microsoft.Scripting.dll removed by upgrade 3.0 -> 3.1. -Upgrading from previous 3.1 beta versions are still possible. - Fixed parsing of try statements with multiple catch clauses (bug introduced in r4526). - * Src/Visitors/LookupTableVisitor.cs: Lookup table visitors now can - be re-used (they reset when they visit a compilation unit). - * Src/Parser/CSharp/cs.ATG: -* Src/Parser/CSharp/Parser.cs: Catch clauses have now set their - correct positions. - Fixed bug where some TreeNode properties were not set when loading a form into the python forms designer. - * Src/Visitors/LookupTableVisitor.cs: Catch variable declarations - are now valid in the whole catch clause, not only in the statement - block. (Required for the lookup inside the variable declaration) - Updated to IronPython 2.0.2 - Show version number of installed 3rd party AddIns in exception dialog. - Added support for code folding of global python methods defined outside of a class. - Use svn:eol-style=native for NRefactory. - CSharpOutputTest: don't ignore whitespace. - Consistently use "http://schemas.microsoft.com/winfx/2006/xaml/presentation" as WPF XML namespace. - Made text boxes for Postbuild/Prebuild events multi-line (forum-9791). - * Src/PrettyPrinter/CSharp/OutputFormatter.cs: -* Src/PrettyPrinter/AbstractOutputFormatter.cs: Comments that start - line are no longer indented when outputting them. - Setup: Fixed issue in .booproj file association. - * Src/PrettyPrinter/CSharp/CSharpOutputVisitor.cs: Corrected else in - new line placement. - fixed SD2-1551 - Changed GUID for Microsoft.Scripting.dll - Fixed forum-9335: checked state in FileTypeRegisterer option panel is incorrect for some entries. - TaskView: show paths relative to the solution directory - Mark SdaUser sample as 32-bit. - Make "Open in explorer" available for solution items and directories. - Fixed forum-9732: exception opening F# interactive pad. - Fixed bug introduced in revision 4452 (IOException on startup). - Fixed SD2-893 - Searching text in a directory with no access permissions throws exception - Fixed potential ArgumentNullException in search (forum-9109, though I couldn't reproduce it). - NRefactory: Fixed incorrect end column in C# type declarations. -Fixes forum-9578: IndexOutOfRangeException in 'Implement Interface' refactoring. - Fixed copying from ICSharpCode.TextEditor to wordpad (encode of characters that are not in Windows-1252). - Fixed forum-9591: NUnit test results are read with incorrect encoding. - Fixed forum-9717: exception using Project - Add - New Folder when the project browser is not open. - Fixed bug when converting references to 'this' and event handlers to python. - Fixed null reference exception when converting a constructor to python. - * Src/Visitors/AbstractAstTransformer.cs: Made node stack protected. - I had a complicated AST transformation where I needed to add/remove - statements this seemed to be the easiest solution for it. - Fixed thread-safety problem in DefaultReturnType. - Updated to NUnit 2.5.1 - Fixed build. - Fixed thread-safety problem in SearchClassReturnType. -Don't set 'Strict' to true when creating new Boo project. - * Src/PrettyPrinter/CSharp/CSharpOutputVisitor.cs: Improved - collection initializer output. - ListViewItems with imageIndex or imageKey set are now created correctly in generated python forms designer code. - Updated to the final build of WiX 3.0 (3.0.5419) - Child tree nodes now added on loading a form in the python forms designer. - Code now generated for TreeView TreeNodes in the python forms designer. - Code generation and ImageList resources now supported in python forms designer. - FileUtility.IsValidPath(...) and additional directory tests (patch by Frederick Kautz) - Added support for icon resources in python forms designer. - Added some missing IronPython files. - Bitmap resources on the main form are now supported in the python forms designer. - Python forms designer now generating the correct code when assigning a DataSet to a DataGridView's DataSource. - Python forms designer now supports local bitmap resources. - Fix breaking changes from may CTP. - * Src/PrettyPrinter/CSharp/PrettyPrintOptions.cs: -* Src/PrettyPrinter/CSharp/CSharpOutputVisitor.cs: Added anonymous - method brace style. - Fixed NRefactory unit tests. - * Src/PrettyPrinter/CSharp/CSharpOutputVisitor.cs: Removed - unneccessary spaces in if section. - Empty form resource file (.resx) now being created and added to project when the python forms designer is used. - Fixed failing unit test. - * Output/CSharp/VBNetToCSharpConverterTest.cs: Fixed unit test. - * Src/PrettyPrinter/CSharp/OutputFormatter.cs: -* Src/PrettyPrinter/AbstractOutputFormatter.cs: Corrected block - comment output. - * Src/PrettyPrinter/CSharp/CSharpOutputVisitor.cs: If statements - without block are now correctly indented. - Python code converter now supports xml doc comments for constructors. Xml doc comments that are not before a class, method or constructor declaration are converted to single line python comments. - * Src/PrettyPrinter/CSharp/CSharpOutputVisitor.cs: removed embedded - statement newline. (newline here is incorrect ex. printing "if (a) - Foo(); else Bar();" should be possible without forcing newline after - Foo). - * Src/PrettyPrinter/CSharp/CSharpOutputVisitor.cs: Correctly indent - embedded statements. - Convert class and method xml doc comments to python docstrings. - Added support for multiline comments in the python code converter. - Single line comments now converted from C#, VB.NET to Python. - Python forms designer now ignores any statements before the form's InitializeComponent method is found (e.g. sys.path.append('...'). - Avoid NullReferenceException when pasting text. - Add 'import clr' if clr.GetType used in converted python code. - Xor operator now converted to python correctly. - Python converter no longer uses 'self' when calling a method inside a static method. - Python code converter now adds code to call the project's main entry method. - Python code converter now converts 'foreach (string key in dictionary.Keys)' statements correctly. - Now using short type names (e.g. Array instead of System.Array) in generated python code. - Convert System.String and System.Int32 to 'str' and 'int' in python. - New line added between import statements and class definitions when converting code to Python. - Fixed code completion on protected members from a base class when the inheritance was specified in a different part of a partial class. - Fixed ObjectDisposedException if user closes SharpDevelop while LoadSolutionProjects thread is running. - Updated fullAssemblyNameToRequiredFrameworkVersionDictionary. -Increase timeout on ProcessExitedTestFixture. - - added additional logging to Unit Test profiling -- fixed bug in Extract Method - Profiler: reimplemented search in QueryView - Double quote characters now escaped when generating string property assignments in the python forms designer. - Backslash characters now escaped when generating string property assignments in the python forms designer. - Correct code generated for nested enum types (e.g. Environment.SpecialFolder) in the python forms designer. - Simplified Reflector AddIn by using Reflector's SendMessage API instead of registering the IPC AddIn. - Fixed another performance issue in the ClassBrowser. - Fixed performance issue in class browser during loading of a solution. - Performance improvements for solution loading: -- Fixed bug in SVN OverlayIconManager that could cause two worker threads to be started. -- Fixed performance bug in SvnClientWrapper.SingleStatus. -- DefaultProjectContent.AddClassToNamespaceListInternal: do not try to update existing class in namespace's classList if we're adding a new class. - Profiler: Fixed CPU usage graph in time line. -Profiler: Fixed "go to definition" command. - Break statements no longer generated when converting a switch statement to python. - Fixed exception in VB code completion when a C# project contains two namespaces that differ only in case. - Allow setting 'Option Infer' in project options. -Create new projects with 'Option Infer' set to true. - Allow choosing the target framework when creating VB projects. - Add Project Reference dialog: sort projects alphabetically. - Fixed ArgumentNullException in CompileModifiedProjectsOnly when an IBuildable2 implementation returned null as ProjectBuildOptions. - Do not show 'Finalize' in C# code completion. - Use tabs instead of spaces in WPF file templates. - Python code converter now specifies types when creating an instance of a generic. - Python forms designer no longer generates code for the form's MainMenuStrip property after the menu strip has been removed. - Python menu options now use the debugger when running ipy.exe - Debugger now supports debugging IronPython code. - Namespace imports now import all classes on conversion to IronPython. - MainFile property now set when converting a project to IronPython. - Boolean variables now correctly converted to python. - Added support for ContextMenuStrips in the python forms designer. - Extender provider properties set for other controls now appear in properties window in the python form designer. - Rename "Quality Tools" -> "Analysis". - Added Create XML output file option to the options panel for unit tests. - Added support for extender providers (e.g. ToolTips) in the python forms designer. - Update to Mono.Cecil revision 134535. -Fixed handling of type attribute arguments when loading with Mono.Cecil. -Fixed handling of unbound generic types in type attribute arguments when loading with Reflection. - Python forms designer does not generate comments for a control if no property or event handler code was generated for that control. - fixed VB .NET Indentation: multiline statements indented correctly (forums/t/9532) - - fixed bugs with profiling read-only projects and Unit Tests -- fixed bug in UnitTesting-AddIn, if unit testing was canceled before the execution had started - Disabled failing debugger test. - Added support for ISupportInitialize in the python forms designer. - - added basic support for profiling Unit Tests -- fixed bug in CopyStacktrace - Python forms designer now checks the non-visual component has a constructor that takes an IContainer before generating code to create the component. - Do not save the highlighter being used if the user didn't change it. -Fixed SD2-1540: When "build only modified projects" is used, projects are not rebuilt after a "Clean" operation - Updated language resources. - Unit Tests tree now shows tests that fail due to an unhandled exception being thrown. - Installer now displays SharpDevelop 3.1 Beta 1. - removed transparency from DebuggeeExceptionForm, added buttons for Break and Terminate again - Fixed ArgumentException thrown when duplicate binary file ids are in a WiX file and the dialog is opened in the designer. - NUnit-Console no longer creates TestResult.xml if the /xml option is not used. - SvnClientWrapper: Fixed NullReferenceException in discovery of changed paths. - Static class methods now use staticmethod when converted to Python. - Use HintPath for IronPython reference in Python project templates. - Add reference to IronPython when converting projects to Python. - Typeof expressions and for each loops using a method call now converted to Python. - Event handlers with EventHandler object creation now converted to Python. - An error message is now displayed when trying to compile a Python application when no main file is specified. - Can now convert C# and VB.NET projects to Python. - Fixed SD2-1514 - Exception compiling F# project using build worker. -Custom events are no longer forwarded to the SharpDevelop process. - WatchPad now allows changing nodes while debugging - Updated to WiX 3.0.5301 - Added ICSharpCode.Core.Presentation to assembly redirect list. -DebuggeeExceptionForm: ShowInTaskbar = false - fixed bug in CSharpMethodExtractor - Fixed build - NUnit 2.5 no longer allows hiding the SetUpFixture method in derived classes. - Fixed failing tests due to move to NUnit 2.5 - Updated to NUnit 2.5.0.9122 - fixed bug when using other file sizes than 64 mb for temporary storage file. - Added basic support for non-visual components in the python forms designer. - Python forms designer now supports loading and generating code for the text in a ListViewSubItem. - Ordering of controls in generated python forms designer code now matches the order of the standard forms designer. - Python forms designer now supports generating code for ListViewItem's text. - Created new ExceptionForm based on suggestions from forums/9446 - Extract Method: clean up and bug fixes - Extract Method: Add ref keyword to extracted parameters only if the type is a reference type - - fixed bugs in VB .NET Indentation -- added Unit Tests - prepared profiler for public testing - Show 'static' class modifier in tool tips. - Use a Mutex when accessing SharpDevelopProperties.xml - -Prevents IOException when shutting down multiple SharpDevelop instances at the same time. - Subversion History View: immediately get file name from view content - - declared PrimaryFileName in AbstractViewContent as virtual to make special case in Profiler ViewContent working - Fixed forum-9315: view contents with customized save command (e.g. project options) are not saved when closing them and clicking 'Yes' in the 'Do you want to save?' question. - Fixed potential NullReferenceException in MemberLookupHelper.IsInvocable. Might have been the cause of forum-9346. - Use "build modified projects only" feature when starting unit tests. - CopyToClipboard: don't truncate string to 256 characters - F# binding: use "--standalone" option only in release builds. This speeds up compiling debug builds of SharpDevelop. - Force handle creation of main form in WorkbenchSingleton.InitializeWorkbench. - Python forms designer no longer generates event handlers if they already exist. - Fixed namespace handling in Boo ConvertVisitor. - Prevent Boo forms designer from changing the type of fields to 'void' - Boo Forms Designer: prevent the designer from deleting unrelated fields. - Fixed loading of assemblies that contain generic types with more than 10 type parameters. - Adjust ProjectTypeGuids when converting project between C# and VB. - Fixed SD2-1397 - Code completion does not work for nested classes inside generic classes. - Fixed bug in ScriptRunner (for scripts inside file or project templates). - Fixed bug in build engine: the mapping solution configuration->project configuration was not applied when building only modified projects. - * Src/Lexer/AbstractLexer.cs: Allow white spaces as symbol - separator. - - fixed crash in ExtractedMethod, when extracting code with params parameters -- always close undo group, even if extraction causes exception - - Bug fixes in Profiler and enhancements in GUI -- improved TaskListPad - ICSharpCode.SharpDevelop.BuildWorker: Fixed excessive CPU usage during build worker shutdown. - Added limited support for ListView items in the python forms designer. No support for sub items nor the ListViewItem.Text property. - Code coverage results now generated when an exclusion has been added to the project. - Fixed forum-9381: GetClass could return class with incorrect type parameter count. - fixed bugs in ProfileProject and ProfileExecutableForm - Added support for designing user controls in the python forms designer. - Removed all control specific code when determining child components in the python forms designer. - Updated UI -Added context menu to RingDiagramControl - Removed control specific code from generated code when adding an array of controls to a property in the python forms designer. - Form.Controls, MenuStrip.Items and ToolStripMenuItem.DropDownItems properties are now generated in the correct alphabetical order in the python forms designer. - Controls.Add method is now invoked rather than being hard coded in the python forms designer code. - ComboBox items code now generated in Python forms designer. - fixed display of merged nodes in profiler - Fixed build by using actual ToolStripMenuItem sizes in menustrip test. - Python forms designer now handles loading and generating a form with a MenuStrip and ToolStripItems. - Fixed bug in XmlParser.IsAttributeValueChar not recognising valid characters as being valid for an attribute value. - Allow saving external tool options when tools in the .NET SDK cannot be found. - SubversionAddIn: on 64-bit Windows, look for 64-bit version of TortoiseSVN. - Improved performance of UpdateAssemblyInfo. -Code-completion debug output: use Debug.WriteLine instead of Console.WriteLine. -Custom Tool project template: fixed compile error. - - fixed SD2-1523 - Watch pad right click shows two context menus based on patch from http://community.sharpdevelop.net/forums/t/9006.aspx -- applied patch for drag&drop in Watch pad from http://community.sharpdevelop.net/forums/t/9320.aspx -- fixed NullReferenceException in ValueNode if either Watch Pad or LocalVarPad are not opened (added comments) - - Fixed SD2-1505 - Locals window - show values in hex does not refresh the values on display. Based on fix supplied by Nikhil Sarda. - Added empty string checks to XmlParser. - fixed crash when trying to profile non-.NET executable -fixed crash when trying to open a session without datasets -fixed bug in HexEditor - added work-around for Windows Forms bug in ElementHost, because WpfViewer was sometimes not displayed. - Switch from SvnDotNet to SharpSVN. This updates the embedded subversion library from 1.5.0 to 1.6.0. - fixed CallCount when selecting only a small amount of datasets. - Code code now generated for empty menu strip in python forms designer. - Python form designer now supports loading/generating code for a form's AcceptButton and CancelButton properties. - * Parser/Expressions/LambdaExpressionTests.cs: Added test case for - typed ref/out parameter lambda expressions. - * Src/Parser/gen.sh: -* Src/Parser/CSharp/cs.ATG: -* Src/Parser/CSharp/Parser.cs: -* Src/Parser/CSharp/CSharpParser.cs: Added ref/out parameters for - typed lambda expressions. - fixed threading bug in QueryCompiler - Event handlers added for child controls when loading a form into the python forms designer. - XmlParser now returning the correct active element if the element is followed by a tab or new line character. - * Src/Lexer/CSharp/Lexer.cs: -* Src/Lexer/AbstractLexer.cs: #if/#elif preprocessor directive now - contain the arg as string representation too (arg was null). - Form event handlers now generated and loaded by python form designer. - SuspendLayout, ResumeLayout methods now called for nested controls in python forms designer generated code. - Child controls now added to a panel when form is loaded into the python form designer. - Code is now generated for controls added to a panel in the python forms designer. - * Src/Visitors/LookupTableVisitor.cs: Added IsQueryContinuation flag - to local lookup variables. This helps resolving the type of "from - ... where ... into VAR" constructs. - When unpinning a pad, hide it immediately (patch from DockPanelSuite forum). - fixed bugs in UI -updated TODO.txt - Added support for AnchorStyles in python forms designer. - Improvements and bug fixes in Profiler.AddIn GUI - Python forms designer: Control creation code now generated. Control variable names now prefixed with underscore. Control properties now set correctly on loading the form into the designer. - Moved SharpDevelopElementHost to Profiler.AddIn -Added new functionality to Profiler -rearranged ProfileExecutableForm -fixed bug in TimeLineControl -smaller bug fixes - ChangeLog: only show changes since revision 3800. - Added SharpDevelopElementHost for hosting WPF controls as ViewContents - Code now generated for controls on a form in the python forms designer. - The state of ShowErrors, ShowWarnings, ShowMessages in the Errors window is now saved on closing SharpDevelop. - Python forms designer now using more PropertyDescriptor information to determine whether a property should be serialized. Form properties now generated in alphabetical order. - Added python class library project template. - new options in profiler - Fixed failing python addin unit tests - font size now converted to string using CultureInfo.InvariantCulture. - Python forms designer now supports fonts. - Prevent potential stack overflow in ElementReturnType.BaseType. - Fixed SD2-1534: Boo forms designer modifies fields in non-designer file - Fixed bug introduced in last commit (fixes unit tests). - Fixed SD2-1530: protected inner classes are not visible - Don't constantly create new threads to poll the clipboard. - Fixed SD2-1533 - Project configurations get confused - Work around for SD2-1485: Build worker occasionally hangs: -In parallel builds, don't use in-process build. - - bug fixes -- added "ProfileExecutable" dialog -- replaced ProfilerService with ProfilerRunner - Fixed unhandled FileNotFoundException in XML tree editor when a file is loaded with a dtd reference that cannot be found. - Fixed bug in 'Find overrides': when overrides were in partial classes, the search result sometimes used the wrong class part. - Fixed exception from forum-9214 (but hung build still not fixed). -Fixed string resource name in App.Config description. - Can now run all tests with code coverage or run all the tests in the current project. - - finished Options Panels -- bug fixes - Mark booc.exe as 32-bit (fix build). -DynamicHelpPad: fixed possible NullReferenceException. - Fixed forum-9168: ArgumentOutOfRangeException in BooFormattingStrategy.SearchBracketForward/GapTextBufferStrategy.GetCharAt. -Fixed forum-9200: ArgumentException in ShowErrorHelpCommand.Run/IHxTopicList.ItemAt. - Boo: In strict mode, the default visibility is private. - Update to Boo 0.9.1.3287. - SearchAndReplace: don't search in .exe/.dll/.pdb - Python forms designer now supports Form Color properties. - added "QualityTools" menu - fixed profiler start bugs - Revert changes to NRefactory.csproj in revision 3849 - add GlobalAssemblyInfo.cs back so that the assembly is correctly versioned. - * Src/Lexer/AbstractLexer.cs: Added null check. - * Src/Lexer/ILexer.cs: -* Src/Lexer/CSharp/Lexer.cs: -* Src/Lexer/AbstractLexer.cs: Added SetConditionalCompilationSymbols - method. - Added CreateStartInfo method to AbstractProject. - When handling file names, use StringComparison.OrdinalIgnoreCase instead of InvariantCultureIgnoreCase. - ExceptionBox: fixed potential deadlock when exception occurred on non-GUI thread. -Added menu entries for "Edit > Insert > Paste as comment/string" (r3832) - Fixed cleanup in AutomatedBuild. - Add profiler to setup. - Build profiler when using SharpDevelop .bat files. - removed doc -fixed references in Profiler.AddIn -clean up in allocator.cpp - Added Profiler - * Src/PrettyPrinter/CSharp/OutputFormatter.cs: -* Src/PrettyPrinter/CSharp/PrettyPrintOptions.cs: -* Src/PrettyPrinter/CSharp/CSharpOutputVisitor.cs: Added place on new - line options. - * Src/PrettyPrinter/CSharp/CSharpOutputVisitor.cs: fixed bracket - space output issues. - * Src/PrettyPrinter/CSharp/OutputFormatter.cs: -* Src/PrettyPrinter/CSharp/PrettyPrintOptions.cs: -* Src/PrettyPrinter/CSharp/CSharpOutputVisitor.cs: Added some - formatting options. - Python forms designer now supports Control's Padding property. - Python forms designer now supports the Form's Location property. - Python forms designer now supports AutoScrollMinSize, AutoScrollMargin and MinimumSize properties. - * Src/PrettyPrinter/CSharp/CSharpOutputVisitor.cs: Respected the - aroundassignment option in more constructs. - * NRefactory.csproj: - -* Src/PrettyPrinter/CSharp/OutputFormatter.cs: -* Src/PrettyPrinter/CSharp/PrettyPrintOptions.cs: -* Src/PrettyPrinter/CSharp/CSharpOutputVisitor.cs: Added some options. - * Src/PrettyPrinter/CSharp/PrettyPrintOptions.cs: -* Src/PrettyPrinter/CSharp/CSharpOutputVisitor.cs: Added some output - options. - Form.Visible property now loaded/generated in python forms designer. - Python forms designer now supports loading and generating code for standard control cursors (e.g. AppStarting, Help and WaitCursor). - * Src/Parser/IParser.cs: -* Src/Lexer/VBNet/Lexer.cs: -* Src/Lexer/CSharp/Lexer.cs: -* Src/Lexer/AbstractLexer.cs: -* Src/Parser/AbstractParser.cs: -* Src/Lexer/Special/Comment.cs: -* Src/Parser/VBNet/VBNetParser.cs: -* Src/Lexer/Special/TagComment.cs: -* Src/Parser/CSharp/CSharpParser.cs: -* Src/Lexer/Special/SpecialTracker.cs: -* Src/Lexer/CSharp/ConditionalCompilation.cs: -* Src/Lexer/Special/PreProcessingDirective.cs: -* Src/PrettyPrinter/AbstractOutputFormatter.cs: -* Src/PrettyPrinter/CSharp/CSharpOutputVisitor.cs: Added some - nrefactory features for monodevelop. - * Output/SnippetConversion.cs: -* Output/VBNet/CSharpToVBNetConverterTest.cs: -* Output/CSharp/VBNetToCSharpConverterTest.cs: Fixed some unit tests - so that they run on non windows platforms. - * Src/PrettyPrinter/VBNet/VBNetOutputFormatter.cs: Use - Environment.Newline instead of hardcoded eol terminator. - String, enum and boolean properties on a form now loading and being generated in the python forms designer. - mscorlib now added as a default reference in Python project templates. - Fixed SD2-1529 - Forms designer rewrites array field declarations. -Fixed NRefactory -> CodeDOM output for array types. - New feature: Edit > Insert > Paste as comment/string. - Fixed namespace handling in Boo code completion. - Assembly created when compiling a class library is now copied to the output folder. - When using "Compile modified projects only", require recompilation if the project options were changed. - Handle errors when writing new class diagram (fixes forum-9024: Read only class diagram file causing System.UnauthorizedAccessException) - Fixed exception when an open solution file is deleted. - Fixed SD2-1524: Reference to a method hiding a base class event resolved incorrectly. -Add Subversion "Get lock..." command. - Fixed SD2-1528: Stack overflow in code completion when using FluentValidation - Add DispatcherErrorHandler allow WPF addins to use SharpDevelop's unhandled exception dialog. -Fixed expected output in failing NRefactory unit test. - * cs.ATG: -* Parser.cs: Fixed unit tests. - checked in some changes from monodevelop. - Added some strings to the translation database (mostly message box texts in the Subversion AddIn). - Backport ICSharpCode.Core.Presentation to SharpDevelop 3.1 - this makes it easier to write WPF-based AddIns. - Open With dialog is now centered and no longer shown in task bar. - Fixed bug in "Find references": MemberLookupHelper.IsSimilarMember could return true when comparing a field with a local variable. - Fixed subversion state condition for directory/solution nodes. - Pressing the up key in the Python Console no longer closes the completion window if there is command history. - Make DisplayBindingService public. -Change keyboard shortcut for debug-mode code completion to Ctrl+Space+Alt+Dot (debug builds only). - Updated the installer version number to 3.1 - Enabled the python code conversion and forms designer. - Updated to IronPython 2.0.1 - Updated test output for ".NET Framework 3.5 SP1 Family Update" - Fixed null reference exception in WriteableProjectEvaluator if a null IProject is returned from the ProjectService.CurrentProject. - Catch InvalidCastException in IronPython parser when parsing invalid code. - SD2-1521: Reconsider what a 'preinstalled addin' is. -Third-party AddIns installed in SharpDevelop/AddIns are now visible in the AddInManager, only AddIns with 'addInManagerHidden="preinstalled"' stay hidden. - Allow SharpDevelop 3.0 addins to load in SharpDevelop 3.1. -Continue using 'SharpDevelop3.0' directory for settings in SharpDevelop 3.1. - Version 3.1 designation - Updated string resources. - \ No newline at end of file diff --git a/src/AddIns/Misc/StartPage/Project/Src/ICSharpCodePage.cs b/src/AddIns/Misc/StartPage/Project/Src/ICSharpCodePage.cs index 5f28177a94..16c4a0dd81 100644 --- a/src/AddIns/Misc/StartPage/Project/Src/ICSharpCodePage.cs +++ b/src/AddIns/Misc/StartPage/Project/Src/ICSharpCodePage.cs @@ -10,8 +10,6 @@ using System.Collections.Generic; using System.IO; using System.Text; using System.Windows.Forms; -using System.Xml; -using System.Xml.Xsl; using ICSharpCode.Core; using ICSharpCode.SharpDevelop; @@ -589,6 +587,7 @@ namespace ICSharpCode.StartPage { try { if (changeLogHtml == null) { + /* XslCompiledTransform transform = new XslCompiledTransform(); transform.Load(Path.Combine(PropertyService.DataDirectory, "ConversionStyleSheets/ShowChangeLog.xsl")); StringWriter writer = new StringWriter(); @@ -596,6 +595,8 @@ namespace ICSharpCode.StartPage xmlWriter.Formatting = Formatting.None; transform.Transform(Path.Combine(FileUtility.ApplicationRootPath, "doc/ChangeLog.xml"), xmlWriter); changeLogHtml = writer.ToString().Replace("\n", "\n
"); + */ + changeLogHtml = File.ReadAllText(Path.Combine(FileUtility.ApplicationRootPath, "doc/ChangeLog.html")); } builder.Append(changeLogHtml); } catch (Exception e) { diff --git a/src/Setup/Files.wxs b/src/Setup/Files.wxs index f1fd48a8fc..1b95023b33 100644 --- a/src/Setup/Files.wxs +++ b/src/Setup/Files.wxs @@ -464,7 +464,7 @@ - + diff --git a/src/Tools/SVNChangeLogToXml/Main.cs b/src/Tools/SVNChangeLogToXml/Main.cs deleted file mode 100644 index a27c434816..0000000000 --- a/src/Tools/SVNChangeLogToXml/Main.cs +++ /dev/null @@ -1,121 +0,0 @@ -using System; -using System.ComponentModel; -using System.Globalization; -using System.IO; -using System.Reflection; -using System.Text; -using System.Text.RegularExpressions; -using System.Windows.Forms; -using System.Xml; -using System.Xml.Xsl; - -using SharpSvn; - -class MainClass -{ - public static int Main(string[] args) - { - Console.WriteLine("Initializing changelog application..."); - try { - if (!File.Exists("SharpDevelop.sln")) { - if (File.Exists(@"..\..\..\..\SharpDevelop.sln")) { - Directory.SetCurrentDirectory(@"..\..\..\.."); - } - if (File.Exists("..\\src\\SharpDevelop.sln")) { - Directory.SetCurrentDirectory("..\\src"); - } - } - if (!File.Exists("SharpDevelop.sln")) { - Console.WriteLine("Working directory must be SharpDevelop\\src or SharpDevelop\\bin!"); - return 2; - } - - int start = 2; - for(int i = 0; i < args.Length; i++) - { - if(args[i] == "--REVISION") - { - CreateRevisionFile(); - } - else if(args[i] == "--START") { - Int32.TryParse(args[i + 1], out start); - } - } - ConvertChangeLog(start); - return 0; - } catch (Exception ex) { - Console.WriteLine(ex); - return 1; - } - } - - static void CreateRevisionFile() - { - Console.Write("Writing revision to file: "); - - long rev = 0; - string filename = Path.GetFullPath("."); - SvnWorkingCopyClient client = new SvnWorkingCopyClient(); - SvnWorkingCopyVersion version; - if (client.GetVersion(filename, out version)) { - rev = version.Start; - } - Console.WriteLine(rev); - using (StreamWriter writer = new StreamWriter("../REVISION")) { - writer.Write(rev.ToString()); - } - } - - static void ConvertChangeLog(int startRevision) - { - Console.WriteLine("Reading SVN changelog, this might take a while..."); - - SvnClient client = new SvnClient(); - - StringWriter writer = new StringWriter(); - XmlTextWriter xmlWriter = new XmlTextWriter(writer); - xmlWriter.Formatting = Formatting.Indented; - xmlWriter.WriteStartDocument(); - xmlWriter.WriteStartElement("log"); - int progressCount = 0; - client.Log( - "..", - new SvnLogArgs { - // retrieve log in reverse order - Start = SvnRevision.Base, - End = new SvnRevision(startRevision) - }, - delegate(object sender, SvnLogEventArgs e) { - if (++progressCount == 10) { - Console.Write("."); - progressCount = 0; - } - xmlWriter.WriteStartElement("logentry"); - xmlWriter.WriteAttributeString("revision", e.Revision.ToString(CultureInfo.InvariantCulture)); - xmlWriter.WriteElementString("author", e.Author); - xmlWriter.WriteElementString("date", e.Time.ToUniversalTime().ToString("MM/dd/yyyy", System.Globalization.CultureInfo.InvariantCulture)); - xmlWriter.WriteElementString("msg", e.LogMessage); - xmlWriter.WriteEndElement(); - } - ); - xmlWriter.WriteEndDocument(); - - Console.WriteLine(); - - XmlTextReader input = new XmlTextReader(new StringReader(writer.ToString())); - - XslCompiledTransform xsl = new XslCompiledTransform(); - xsl.Load(@"..\data\ConversionStyleSheets\SVNChangelogToXml.xsl"); - - StreamWriter tw = new StreamWriter(@"..\doc\ChangeLog.xml", false, Encoding.UTF8); - xmlWriter = new XmlTextWriter(tw); - xmlWriter.Formatting = Formatting.Indented; - xsl.Transform(input, xmlWriter); - xmlWriter.Close(); - tw.Close(); - - client.Dispose(); - - Console.WriteLine("Finished"); - } -} diff --git a/src/Tools/SVNChangeLogToXml/SVNChangelogToXml.csproj b/src/Tools/SVNChangeLogToXml/SVNChangelogToXml.csproj deleted file mode 100644 index 7ccf775d79..0000000000 --- a/src/Tools/SVNChangeLogToXml/SVNChangelogToXml.csproj +++ /dev/null @@ -1,56 +0,0 @@ - - - Debug - AnyCPU - 8.0.40607 - 2.0 - {c6159c5e-f6ef-4a63-b152-0e49159b6059} - SVNChangelogToXml - SVNChangelogToXml - Exe - False - False - OnSuccessfulBuild - False - Auto - 4194304 - x86 - 4096 - 4 - 1607 - --REVISION --START 100 - C:\Users\Daniel\AppData\Roaming\ICSharpCode/SharpDevelop3.0\Settings.SourceAnalysis - v2.0 - - - true - True - bin\Debug\ - False - False - false - Full - - - False - True - False - False - bin\Release\ - true - - - - ..\..\Libraries\SharpSvn\SharpSvn.dll - - - - - - - - - - - - \ No newline at end of file diff --git a/src/Tools/SVNChangeLogToXml/SVNChangelogToXml.csproj.user b/src/Tools/SVNChangeLogToXml/SVNChangelogToXml.csproj.user deleted file mode 100644 index 7ff3943f7c..0000000000 --- a/src/Tools/SVNChangeLogToXml/SVNChangelogToXml.csproj.user +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/Tools/SVNChangeLogToXml/SVNChangelogToXml.sln b/src/Tools/SVNChangeLogToXml/SVNChangelogToXml.sln deleted file mode 100644 index ef94ebc75f..0000000000 --- a/src/Tools/SVNChangeLogToXml/SVNChangelogToXml.sln +++ /dev/null @@ -1,18 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -# SharpDevelop 3.1.0.3932 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SVNChangelogToXml", "SVNChangelogToXml.csproj", "{c6159c5e-f6ef-4a63-b152-0e49159b6059}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C6159C5E-F6EF-4A63-B152-0E49159B6059}.Debug|Any CPU.Build.0 = Debug|AnyCPU - {C6159C5E-F6EF-4A63-B152-0E49159B6059}.Debug|Any CPU.ActiveCfg = Debug|AnyCPU - {C6159C5E-F6EF-4A63-B152-0E49159B6059}.Release|Any CPU.Build.0 = Release|AnyCPU - {C6159C5E-F6EF-4A63-B152-0E49159B6059}.Release|Any CPU.ActiveCfg = Release|AnyCPU - EndGlobalSection -EndGlobal diff --git a/src/Tools/UpdateAssemblyInfo/Main.cs b/src/Tools/UpdateAssemblyInfo/Main.cs index d8aec94b4d..48a56066aa 100644 --- a/src/Tools/UpdateAssemblyInfo/Main.cs +++ b/src/Tools/UpdateAssemblyInfo/Main.cs @@ -42,6 +42,10 @@ namespace UpdateAssemblyInfo Input = "Setup/SharpDevelop.Setup.wixproj.user.template", Output = "Setup/SharpDevelop.Setup.wixproj.user" }, + new TemplateFile { + Input = "../doc/ChangeLog.template.html", + Output = "../doc/ChangeLog.html" + }, }; class TemplateFile @@ -95,6 +99,7 @@ namespace UpdateAssemblyInfo content = content.Replace("$INSERTVERSION$", fullVersionNumber); content = content.Replace("$INSERTREVISION$", revisionNumber); content = content.Replace("$INSERTCOMMITHASH$", gitCommitHash); + content = content.Replace("$INSERTDATE$", DateTime.Now.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture)); if (File.Exists(file.Output)) { using (StreamReader r = new StreamReader(file.Output)) { if (r.ReadToEnd() == content) { From 79e2ce14023dae2e20a970d8ba1b94f1bc7d5e89 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Tue, 3 Aug 2010 12:16:51 +0200 Subject: [PATCH 4/7] Fix automated build. --- src/Automated.proj | 17 +++++--------- src/Tools/Tools.build | 10 ++------- src/Tools/UpdateAssemblyInfo/Main.cs | 22 ++++++++++++++----- .../UpdateAssemblyInfo.csproj | 13 ++++++++++- 4 files changed, 36 insertions(+), 26 deletions(-) diff --git a/src/Automated.proj b/src/Automated.proj index 1fc9276f30..4045a427d3 100644 --- a/src/Automated.proj +++ b/src/Automated.proj @@ -11,7 +11,7 @@ $(ProjectDir)\src $(ProjectDir)\bin $(MSBuildProjectDirectory)\Tools\MSBuildCommunityTasks - SharpDevelop_3.2.0. + SharpDevelop_ $(MSBuildProjectDirectory)\Tools\NUnit $(SharpDevelopBin)\Tools\x86NUnit $(SharpDevelopSrc)\AddIns\Misc\Profiler @@ -56,13 +56,11 @@ Targets="PrepareRelease" Properties="Configuration=Release"/> - - - - - - - + + + + - - diff --git a/src/Tools/Tools.build b/src/Tools/Tools.build index 658c7838d2..d65a1bb6d4 100644 --- a/src/Tools/Tools.build +++ b/src/Tools/Tools.build @@ -40,15 +40,9 @@ - - - - - - - - + + diff --git a/src/Tools/UpdateAssemblyInfo/Main.cs b/src/Tools/UpdateAssemblyInfo/Main.cs index 48a56066aa..c9e423e853 100644 --- a/src/Tools/UpdateAssemblyInfo/Main.cs +++ b/src/Tools/UpdateAssemblyInfo/Main.cs @@ -9,12 +9,13 @@ using System.Collections.Specialized; using System.Diagnostics; using System.Globalization; using System.IO; +using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Text; using System.Text.RegularExpressions; - using System.Threading; +using System.Xml.Linq; namespace UpdateAssemblyInfo { @@ -80,6 +81,15 @@ namespace UpdateAssemblyInfo } RetrieveRevisionNumber(); UpdateFiles(); + if (args.Contains("--REVISION")) { + var doc = new XDocument(new XElement( + "versionInfo", + new XElement("version", fullVersionNumber), + new XElement("revision", revisionNumber), + new XElement("commitHash", gitCommitHash) + )); + doc.Save("../REVISION"); + } return 0; } } catch (Exception ex) { @@ -90,7 +100,6 @@ namespace UpdateAssemblyInfo static void UpdateFiles() { - string fullVersionNumber = GetMajorVersion() + "." + revisionNumber; foreach (var file in templateFiles) { string content; using (StreamReader r = new StreamReader(file.Input)) { @@ -161,6 +170,7 @@ namespace UpdateAssemblyInfo #region Retrieve Revision Number static string revisionNumber; + static string fullVersionNumber; static string gitCommitHash; static void RetrieveRevisionNumber() @@ -174,6 +184,7 @@ namespace UpdateAssemblyInfo if (revisionNumber == null) { ReadRevisionFromFile(); } + fullVersionNumber = GetMajorVersion() + "." + revisionNumber; } static void ReadRevisionNumberFromGit() @@ -201,10 +212,9 @@ namespace UpdateAssemblyInfo static void ReadRevisionFromFile() { try { - using (StreamReader reader = new StreamReader(@"..\REVISION")) { - revisionNumber = reader.ReadLine(); - gitCommitHash = reader.ReadLine(); - } + XDocument doc = XDocument.Load("../REVISION"); + revisionNumber = (string)doc.Root.Element("revision"); + gitCommitHash = (string)doc.Root.Element("commitHash"); } catch (Exception e) { Console.WriteLine(e.Message); Console.WriteLine(); diff --git a/src/Tools/UpdateAssemblyInfo/UpdateAssemblyInfo.csproj b/src/Tools/UpdateAssemblyInfo/UpdateAssemblyInfo.csproj index 97f6294d8e..2f4743efb4 100644 --- a/src/Tools/UpdateAssemblyInfo/UpdateAssemblyInfo.csproj +++ b/src/Tools/UpdateAssemblyInfo/UpdateAssemblyInfo.csproj @@ -18,9 +18,10 @@ 4 false 1607 - v2.0 + v3.5 app.manifest C:\Users\Daniel\AppData\Roaming\ICSharpCode/SharpDevelop3.0\Settings.SourceAnalysis + --REVISION bin\Debug\ @@ -35,6 +36,7 @@ Full true + Project None @@ -42,8 +44,17 @@ + + 3.5 + + + 3.5 + + + 3.5 + From cc0747bd45b178077b5166947571c93e34b4caae Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Tue, 3 Aug 2010 21:31:46 +0200 Subject: [PATCH 5/7] Read copyright information from GlobalAssemblyInfo --- src/AddIns/Misc/StartPage/Project/Src/StartPageControl.xaml | 4 +--- .../Misc/StartPage/Project/Src/StartPageControl.xaml.cs | 5 +++-- src/Main/Base/Project/Resources/CommonAboutDialog.xfrm | 2 +- src/Main/Base/Project/Src/Gui/Dialogs/CommonAboutDialog.cs | 5 ++++- src/Main/GlobalAssemblyInfo.template | 2 +- src/Tools/UpdateAssemblyInfo/Main.cs | 2 +- 6 files changed, 11 insertions(+), 9 deletions(-) diff --git a/src/AddIns/Misc/StartPage/Project/Src/StartPageControl.xaml b/src/AddIns/Misc/StartPage/Project/Src/StartPageControl.xaml index d8d6044476..f827b61327 100644 --- a/src/AddIns/Misc/StartPage/Project/Src/StartPageControl.xaml +++ b/src/AddIns/Misc/StartPage/Project/Src/StartPageControl.xaml @@ -74,9 +74,7 @@ Grid.Row="2" Padding="4,0,4,0" TextWrapping="WrapWithOverflow"> - Copyright © - IC#SharpCode + Copyright © diff --git a/src/AddIns/Misc/StartPage/Project/Src/StartPageControl.xaml.cs b/src/AddIns/Misc/StartPage/Project/Src/StartPageControl.xaml.cs index d6c2695496..6fac805891 100644 --- a/src/AddIns/Misc/StartPage/Project/Src/StartPageControl.xaml.cs +++ b/src/AddIns/Misc/StartPage/Project/Src/StartPageControl.xaml.cs @@ -11,6 +11,7 @@ using System.Reflection; using System.Windows.Controls; using ICSharpCode.Core; +using ICSharpCode.SharpDevelop.Gui; namespace ICSharpCode.StartPage { @@ -27,8 +28,8 @@ namespace ICSharpCode.StartPage List entries = items.ConvertAll(control => new BoxEntry { Control = control } ); startPageItems.ItemsSource = entries; - var aca = (AssemblyCopyrightAttribute)typeof(StartPageControl).Assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false)[0]; - copyrightYearRange.Text = aca.Copyright.Substring(0, 9); + var aca = (AssemblyCopyrightAttribute)typeof(CommonAboutDialog).Assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false)[0]; + copyrightText.Text = aca.Copyright; } sealed class BoxEntry diff --git a/src/Main/Base/Project/Resources/CommonAboutDialog.xfrm b/src/Main/Base/Project/Resources/CommonAboutDialog.xfrm index 24e163c1e1..c23922536a 100644 --- a/src/Main/Base/Project/Resources/CommonAboutDialog.xfrm +++ b/src/Main/Base/Project/Resources/CommonAboutDialog.xfrm @@ -26,7 +26,7 @@ - + diff --git a/src/Main/Base/Project/Src/Gui/Dialogs/CommonAboutDialog.cs b/src/Main/Base/Project/Src/Gui/Dialogs/CommonAboutDialog.cs index b382e2fb38..7595db9518 100644 --- a/src/Main/Base/Project/Src/Gui/Dialogs/CommonAboutDialog.cs +++ b/src/Main/Base/Project/Src/Gui/Dialogs/CommonAboutDialog.cs @@ -7,8 +7,9 @@ using System; using System.Drawing; +using System.Reflection; +using System.Text.RegularExpressions; using System.Windows.Forms; - using ICSharpCode.Core.WinForms; using ICSharpCode.SharpDevelop.Gui.XmlForms; @@ -132,6 +133,8 @@ namespace ICSharpCode.SharpDevelop.Gui public CommonAboutDialog() { SetupFromXmlStream(this.GetType().Assembly.GetManifestResourceStream("Resources.CommonAboutDialog.xfrm")); + var aca = (AssemblyCopyrightAttribute)typeof(CommonAboutDialog).Assembly.GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false)[0]; + ControlDictionary["copyrightLabel"].Text = "Copyright " + aca.Copyright; } protected override void SetupXmlLoader() diff --git a/src/Main/GlobalAssemblyInfo.template b/src/Main/GlobalAssemblyInfo.template index 9ee839bbe3..2eed8250de 100644 --- a/src/Main/GlobalAssemblyInfo.template +++ b/src/Main/GlobalAssemblyInfo.template @@ -20,7 +20,7 @@ using System.Reflection; [assembly: System.Runtime.InteropServices.ComVisible(false)] [assembly: AssemblyCompany("ic#code")] [assembly: AssemblyProduct("SharpDevelop")] -[assembly: AssemblyCopyright("2000-2010 AlphaSierraPapa")] +[assembly: AssemblyCopyright("2000-2010 AlphaSierraPapa for the SharpDevelop Team")] [assembly: AssemblyVersion(RevisionClass.FullVersion)] [assembly: NeutralResourcesLanguage("en-US")] diff --git a/src/Tools/UpdateAssemblyInfo/Main.cs b/src/Tools/UpdateAssemblyInfo/Main.cs index fecf07cf14..de74563206 100644 --- a/src/Tools/UpdateAssemblyInfo/Main.cs +++ b/src/Tools/UpdateAssemblyInfo/Main.cs @@ -189,7 +189,7 @@ namespace UpdateAssemblyInfo static void ReadRevisionNumberFromGit() { - ProcessStartInfo info = new ProcessStartInfo("cmd", "/c git rev-list " + BaseCommit + "..HEAD"); + ProcessStartInfo info = new ProcessStartInfo("cmd", "/c git rev-list --first-parent " + BaseCommit + "..HEAD"); info.RedirectStandardOutput = true; info.UseShellExecute = false; using (Process p = Process.Start(info)) { From 5877eaf5d670634e42ce125ba0667f924c1d145d Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Tue, 3 Aug 2010 21:33:41 +0200 Subject: [PATCH 6/7] Automatically update copyright end year --- src/Main/GlobalAssemblyInfo.template | 2 +- src/Tools/UpdateAssemblyInfo/Main.cs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Main/GlobalAssemblyInfo.template b/src/Main/GlobalAssemblyInfo.template index 2eed8250de..791a1c132a 100644 --- a/src/Main/GlobalAssemblyInfo.template +++ b/src/Main/GlobalAssemblyInfo.template @@ -20,7 +20,7 @@ using System.Reflection; [assembly: System.Runtime.InteropServices.ComVisible(false)] [assembly: AssemblyCompany("ic#code")] [assembly: AssemblyProduct("SharpDevelop")] -[assembly: AssemblyCopyright("2000-2010 AlphaSierraPapa for the SharpDevelop Team")] +[assembly: AssemblyCopyright("2000-$INSERTYEAR$ AlphaSierraPapa for the SharpDevelop Team")] [assembly: AssemblyVersion(RevisionClass.FullVersion)] [assembly: NeutralResourcesLanguage("en-US")] diff --git a/src/Tools/UpdateAssemblyInfo/Main.cs b/src/Tools/UpdateAssemblyInfo/Main.cs index de74563206..d2fadcd904 100644 --- a/src/Tools/UpdateAssemblyInfo/Main.cs +++ b/src/Tools/UpdateAssemblyInfo/Main.cs @@ -109,6 +109,7 @@ namespace UpdateAssemblyInfo content = content.Replace("$INSERTREVISION$", revisionNumber); content = content.Replace("$INSERTCOMMITHASH$", gitCommitHash); content = content.Replace("$INSERTDATE$", DateTime.Now.ToString("MM/dd/yyyy", CultureInfo.InvariantCulture)); + content = content.Replace("$INSERTYEAR$", DateTime.Now.Year.ToString()); if (File.Exists(file.Output)) { using (StreamReader r = new StreamReader(file.Output)) { if (r.ReadToEnd() == content) { From b27c4aa9248d6845f2a01d83e25273d2431e705e Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Sun, 22 Aug 2010 03:16:41 +0200 Subject: [PATCH 7/7] Compile UpdateAssemblyInfo.exe as part of the build. --- src/Main/Core/Project/ICSharpCode.Core.csproj | 4 + .../SVNChangeLogToXml/SVNChangelogToXml.xsl | 115 ------------------ .../bin/Debug/UpdateAssemblyInfo.exe | Bin 20480 -> 0 bytes 3 files changed, 4 insertions(+), 115 deletions(-) delete mode 100644 src/Tools/SVNChangeLogToXml/SVNChangelogToXml.xsl delete mode 100755 src/Tools/UpdateAssemblyInfo/bin/Debug/UpdateAssemblyInfo.exe diff --git a/src/Main/Core/Project/ICSharpCode.Core.csproj b/src/Main/Core/Project/ICSharpCode.Core.csproj index a5e7a41962..6d32033051 100644 --- a/src/Main/Core/Project/ICSharpCode.Core.csproj +++ b/src/Main/Core/Project/ICSharpCode.Core.csproj @@ -140,4 +140,8 @@ ..\src\Tools\UpdateAssemblyInfo\bin\Debug\UpdateAssemblyInfo.exe + + + + \ No newline at end of file diff --git a/src/Tools/SVNChangeLogToXml/SVNChangelogToXml.xsl b/src/Tools/SVNChangeLogToXml/SVNChangelogToXml.xsl deleted file mode 100644 index 8a5a20b4b7..0000000000 --- a/src/Tools/SVNChangeLogToXml/SVNChangelogToXml.xsl +++ /dev/null @@ -1,115 +0,0 @@ - - - - - - - - - - - Mike Krüger - - - Roman Taranchenko - - - Georg Brandl - - - Andrea Paatz - - - Daniel Grunwald - - - Denis Erchoff - - - Markus Palme - - - Ivo Kovacka - - - John Reilly - - - Christoph Wille - - - Alexandre Semenov - - - Nikola Kavaldjiev - - - Matt Ward - - - Mathias Simmack - - - David Srbecký - - - David Alpert - - - Peter Forstmeier - - - Scott Ferrett - - - Dickon Field - - - Itai Bar-Haim - - - Christian Hornung - - - Justin Dearing - - - Russell Wilkins - - - Robert Pickering - - - Siegfried Pammer - - - Ivan Shumilin - - - Philipp Maihart - - - Martin Koníček - - - Tomasz Tretkowski - - - Sergej Andrejev - - - - - - - - - - - - - - - - - diff --git a/src/Tools/UpdateAssemblyInfo/bin/Debug/UpdateAssemblyInfo.exe b/src/Tools/UpdateAssemblyInfo/bin/Debug/UpdateAssemblyInfo.exe deleted file mode 100755 index cc8dbb8bc0be5adeac4dfc41aa7e9ca9fb918945..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20480 zcmeHNeQ;dWbwBUD{g$+NSH`ljjh|MwStIXC{s3%a8Of4tZ;@=Hm25-gn76x6>t}ZN zE${8hQc{SRkQN9e5b|Zx7MNt3NoQbaCru!28k$Knlcvd#&}r#3b;)$54QbP)6DE_i zQ|Ry9_nuZ?2IHZBvCn?z-Fxo2=brPs=YDEO?|76HBJ$yV^G%}X@#Uvq(6=UYD2{IW zT9m#V{$A(v(#ZEZ$IlwJTD8ogrIppZR;idZHK(gqy`mZwb?8`DEt>^B-PRV_?5aLK zOf(`X^z8?NBVKE-k}S1IAtDtVe)0UpEg&l1e!NUnd{#MjBPHzTFU{cvpC5(#KO!6Nv}Id)aD;9BNU-s}co#hVus&_+B@=>dE8U5g<@)h1c>0MBF32{MO$3?< zG!bYb&_tk#Kofx`0!;*(2s9CBBJdtU;3+;=7sut(M6&)?V*3lpuPp;t4SPrBSQQJ3RoI*+Q3OhLE6IBhnR5{ zGgxlT8`jT;|X!j)nWq@Knh5`P|?U6O@E#0SLkyy(U?S6{+ty@@c`vU8BlQjXJy_yxE zZb0ZW(Je6e;_6snwd+PG7BJT^_eU@?*3xmRy(QKXi+s#@!zbK)0!Upgr%O6yV3LO~PPGm!{gTor`7ZQ)cf=s^>({@Cjib0Z5`FEiq9JV1003Cyu8J{rvZNKV$Oc`FR)QWY@=!A}xH}ewFnzFAYe$r4Gks7I-U{?_Swuu6EfjiY(Bbj=4neExu1|Hw=K4Yj`FVHLm~qPPP@OgyAeHL@@=_Phxk$@&=hZK1HK zqMzD*G2a@Dkzg#C+C`yFiI^{JcB0@^$0;+x0{+lEE9Q^+Zg+}rH@i?6A?vwIC_AvS zGG|tJ3zcH7fZiYe|LDc&*bKwBv?3&V3WVSLe)| zeDj#z1blbk^~N{HX9axB4>6J#g%QS}qZJ@87==o}XKsNJt)cm$#od7MyIpJi@al zk4tarJ>`%>+z-v~tDuiXpQ9J9Jfl$blfz?!*I57WiXEda?F^V3)zR>L4}-Io9S5 z^9Fn=yvDpye3Lif)9%AsY3@NvOz7=?ERbJkeS5hufCUfBji)%Z4smMU3`U2!pR4qN z2w25B>GNV6BhQN;dPfeWT8Z~70Y|3;MZ5t8{1Y>(a2~P(6GxU~L(FAe)SLB&O^|X1 zt>@T~DM)j_3-9sBq)3?&X*H+Q4Heg4D<==YpX(21f9s&cJ1RU_v}k%~x;K48?@c>_ z7mvUa=>6DTblpqz3w$RL{9W0aWmJkbON?Om!~>#hB1}#Xf=gY$d-?i6`P(9l!`Z zj9iEGYe>H+JtJL3e+#hyDe}Ka0qPQTKt2r4AwhpzJ|_q0OY)PT-xZu62>J{8pTYT+ zpkakew+VV!;kvp=TY`RAa6TjG(+bymL8Sjtl>S7}n9uKv())cAz5spJ#~QxxV|!Zs zzXE5wpE)}Py%jV{_xUFv|54Bg{h|LEDMJ4$XfW_=c-JQACP4>5`Eh#9>Ah9dN!>t- zbGOY+pvG-;IYH}!J|O7hf<6fvqwQ!RMql)8P>!pt?bGySS|elglHlB9^a5>=WqQud zeUlQhk3NefipyT2t;l@~^FHT(Lfx{T_F$gl+(xMfxtHAB%~H16UZAnyRZN#0ARgoDeeS<@;!tvQ>VNj)8Kmdq8hj?w21!-G}50bdU0o{4{-B zxk<=;9D2T~d{KS@GS49Wcgmm2e<>utL%&qUQ1^e87v&$&HNI~P4c`T)%l9MDZXa9K z<@+({jlO@AzeD}LF*zpWzeE|N*@lGtn(*!)=r!Lq<-e%IpHhB92mL#huyoSjEr+F& zf2$mm7=d-tr~G|NE97rgV$#$8+mtXQ$KVlr+6kHWE1l9;{RPk;f^L)k({F&j?zfZ} zR)zD*Ua39sA!Ucu6Zo()Angl0sAQyD17pCD^+)kn(l$hK2z$;bW|GH2SJ8ifuBK5b zN^9vgDUFf+1tm@E=_{b^^o$}&gVJWDU(ip=e=ff)|4jaktSEbxN0lMPH-`XN^k8KZ zvxLW##2m4dcUTllRO{H`|Nf^r)2d7$HpH`k)GX9X`T?4#7POi^VB2~*SDMXKrp&ZH zqtmEnR0d0$ZLc6eWjk+LB_l`KS-Yl}=~(WZp05#-)e@8)GD{b=Ea2Thpvsz3S%1^nzi*64V@DgwnyQydZX2%X6dXIM zm31`7Hds2K%fDMfhN7HNGHSDp((&12k7$(w zdL4Lkj&X50PKW^Psglz(#DI#MV4Y{4ouT=ezW!LS-n&mp3(C>Be?Yu5||}LM=q%}s@3usUY3a|lx@$}^W31r88l1YkmWKV zWec$kPx^yem2ne{6I!XRQ#voEJL=2QS<=X&Dh-iN(|Ai{A~%7zfRY+G1B5vd-!jgU zC7PuS&bm{OqRvazPD8%LC*qB1N>dNsl_+&h;#O_t_UAPmJBgMox{D0xE0PMU4CHmn z!!|CN1+PqXv{*wbhZ6OYT04nSHtOVI(+KqBkY?`<)Uv^ASd#@7uz%fBP8#i(@Q<(` zpsQ1qqA?oA4kClP89GKsNs2AyP{wO>6s@rzJ=p&<&N<{um&7+M&@ZDWN^Vb3X9}$x zMO(vYcYImfDU$lGw5>c4pxc+%&cX`Ds3u~fhmIp{(mA&WdQeuyzvZ^3fwBo-r{HlB zS08N5p@nETxFCNj9*ZKxT9!39yV!CR_2D~3f6 zoVl`^UH~mIPQm4UCx6>0wD1`8oZuMX2xcR6VFq*Ru1Rcs zW7M)e4gk(fR6q~X$%QUB5mgh~>yWl#-+AQN#<%z9I{Z}dI_Ttol7bte(__$~!79(% zw?m}SRs#)Zrci+uk8Q`xeXxeE;&vwS7KMcr%max6{&3KPk)gU=6*WvTuN}dN7{Dxi zFYSb#T-W2Mm}OF;qf=r`aSe;40Y`5NDDYgBLMsLQ^&yRW<9#|HPf4eiSAKV9q&wfa;zp-0ofTG^aOR#^-olm68t?Xev)wc8a#lgy(S$Ze{rDYn zG>V%n$w!jJiD(d4b&vrLp<0TmE$*{B%X;+gyfA;=#gTl(Yh?hPRCB8 z9`wsfP?G&BE5gA!Zg4B8XM}>jXk3eDxVcai0wE>DVxdq=FocpQQc*b^^m7_wkcaq0 zR1W?9w&IpgK5$1e0LM4P%fZ0a@w=sX*(c#t4sRmd%xpjf0(1AF@d&#;_ej(gLmSeD zwXLcwgXz>{mg5;Nks$l2_}pU*k_J!Wa~A|gaDn1;PeW~d?)O9OY~tL5@d-#m9_b5m zNTL9nKuGW%Bhj^dg*Gm)IcaItqh@9P1cEb_dEOSXkn(<0E+dVd4ZV)b%GWW$j%A0k z{^vil<>fu{;3F*;?2}*l@ii=y-#2;QwCN3x=`XfU;JW! z3#t7g_3jW^+zqSv6+QkGi#e0#7VCBHF^^w@e|7~v*I%Lp9H)mKMe3=3q8fwmK5GYw ze(H4~cr_W9=-6#$=?p0E0lgj68L_)MgdHe9U-$j|4NtFNxWt1Vq3gEVC>;{K6IdlI zI^?co8AOWM>7#5jajkKbYT)wzo=*qP&cV_0oR4p@CD_#1#w^$LoRI0on&kZ3ja@L- zV%m;-GHJeLo?vaPcDx;`E^0@GY%e0eA$tO{jr|AP!s}<_CG1%{AkW_LdB(z*_uWT9 z%gEDZop!ukCF@TLTSrj0C^YfLv5J!jTU*3lqy`xk?!cv8Tirtr}Ta|q_E(yw-ohlo7%e2j@S}Jdr z_i1)HJ-s8LmbHp8rQ6=sp3@pssp`D4OaTXS+}td(2!9BIRTW&#^(97U2daEP7dHoK zty)d=I2vkJ-LCNw{W9&@nGp5RwvD4YZjWZ&JUEtqcO7=>h2xenjVrsNZeOO>U7l7I zPeYG$9e`V<5uR<;64SnfX5*&Ayi2zdYTXzR=l;ILlvc8J*D0Z-X9a6K(|Z=#zQ1Q4 z1PJW!@p=du?(OE&M4*X46M-fIO$3?