Updated CHANGES.txt for 4.8.0-beta0005
Project: http://git-wip-us.apache.org/repos/asf/lucenenet/repo Commit: http://git-wip-us.apache.org/repos/asf/lucenenet/commit/fd691967 Tree: http://git-wip-us.apache.org/repos/asf/lucenenet/tree/fd691967 Diff: http://git-wip-us.apache.org/repos/asf/lucenenet/diff/fd691967 Branch: refs/heads/master Commit: fd691967e0bb3bbbf6099513f75a4a809529ed2a Parents: 5b2480a Author: Shad Storhaug <[email protected]> Authored: Thu Oct 19 19:36:35 2017 +0700 Committer: Shad Storhaug <[email protected]> Committed: Fri Oct 20 01:26:01 2017 +0700 ---------------------------------------------------------------------- CHANGES.txt | 208 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 207 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/lucenenet/blob/fd691967/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 5da80a7..b2aa1d0 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,210 @@ -=================== Release 4.8.0-beta00004 ===================== +=================== Release 4.8.0-beta00005 ===================== + +Bug +⢠Added [Obsolete] attribute to Lucene.Net.Field extension methods that are only for + pre-4.0 backward compatibility. +⢠BREAKING: Lucene.Net.Search.Similarites.BasicStats: Changed m_field from protected to + private (to match Lucene). +⢠BREAKING: Lucene.Net.Util.MapOfSets: Changed Map property from IDictionary<TKey, HashSet<TValue>> + to IDictionary<TKey, ISet<TValue>> (to match Lucene). +⢠BREAKING: Lucene.Net.Util.OfflineSorter: Changed setter of BufferSize property to private + (to match Lucene). +⢠BREAKING: Lucene.Net.Util.RamUsageEstimator.IdentityHashSet<KType>: Changed accessibility + from public to internal (to match Lucene) +⢠BREAKING: Lucene.Net.Search.BitsFilteredDocIdSet: Changed constructor to throw ArgumentNullException + instead of NullReferenceException (.NET convention) +⢠Lucene.Net.Search.ConstantScoreQuery.ConstantWeight: Fixed initialization issue with commented code + in GetValueForNormalization() (that diverged from Lucene) +⢠Lucene.Net.Util.OfflineSorter: Added line to delete the output file (that existed in Lucene). +⢠BREAKING: Lucene.Net.Analysis.Common.Analysis.Util.AbstractAnalysisFactory: Changed return + type of GetSet from ICollection<T> to ISet<T>. +â¢[LUCENENET-544] - Turkish stemmer causes an IndexOutOfRange (Reported in prior version, added + regression test to show it is no longer an issue). +â¢[LUCENENET-544] - replace java doc notation with ms style xml comments notation. +⢠Lucene.Net.Misc: Removed unnecessary dependency on Lucene.Net.Analysis.Common +⢠Lucene.Net.Highlighter: Removed unnecessary dependency on Lucene.Net.Analysis.Common +⢠BREAKING: Lucene.Net.Facet.Taxonomy.TaxonomyReader: Implemented IDisposable and proper dispose pattern. + Public Dispose(bool) method removed. +⢠Lucene.Net.Misc.IndexMergeTool: Added try-finally block to properly dispose of directories. +â¢[LUCENENET-521] - Concurrency bug with MMapDirectory (added regression test to confirm fix). +â¢[LUCENENET-530] - Create a truly Memory Mapped Directory type as MMapDirectory is not really memory mapped + Lucene.Net.Store: Fixed MMapDirectory concurrency using solution suggested by Vincent + Van Den Berghe http://apache.markmail.org/message/hafnuhq2ydhfjmi2. +⢠Lucene.Net.Store.LockVerifyServer: Read/write 1 byte instead of 1 int (4 bytes). + Also, we don't need 2 streams in .NET for input/output (solution provided by Vincent Van Den Berghe). +⢠Lucene.Net.TestFramework.Store.MockDirectoryWrapper.IndexInputSlicerAnonymousInnerClassHelper: Fixed Dispose() method. +⢠Lucene.Net.Index.IndexWriter: Fixed string formatting of numeric values in InfoStream message. +⢠Lucene.Net.Tests.Querys.CommonTermsQueryTest: Added missing TestRandomIndex() test +⢠Lucene.Net.Analysis.Common.Analysis.CharFilter.MappingCharFilterFactory: fixed escaping problem in parsing regex +⢠Lucene.Net.Search.SearcherLifetimeManager: Corrected bug in Lifetime reference count +⢠Lucene.Net.Spatial: Removed unnecessary dependencies on GeoAPI and NetTopologySuite +â¢[LUCENENET-593] - Refactored Lucene.Net.Util.Constants so OS identification, processor architecture, and + framework identification are more reliable. Searching for environment variables rather than using well-known APIs + was causing a null reference exception on Linux. +⢠Lazily initialize codecs to ensure the correct type is loaded if overridden +⢠Lucene.Net.Search.FieldCacheRangeFilter.AnonymousStringFieldCacheRangeFilter: Fixed Debug.Assert condition that + was causing assert to fail. +⢠Lucene.Net.Tests.Spatial.SpatialArgsTest.CalcDistanceFromErrPct(): Test fails because floating point asserts + didn't contain any delta and the implementation has changed in .NET Core 2.0 so it is no longer on the nose + (but still well within tolerance for floating point numbers). +⢠Lucene.Net.Tests.Index.TestConcurrentMergeScheduler: Fixed FailOnlyOnFlush class to match the original, + which was causing TestFlushExceptions() to fail. Also removed throw statement on a background thread that + was causing a crash. +⢠Lucene.Net.Tests.Search.TestMutiTermConstantScore: Made Small and Reader variables instance members, since + they are being set by instance methods. When they were static, tests could cross threads on the instance. +⢠Lucene.Net.TestFramework.Util.LuceneTestCase: Added missing catch block for UnauthorizedAccessException, + which does not subclass IOException in .NET as was the case in Java. +⢠Lucene.Net.Tests.Index.TestTransactionRollback: Fixed issue where the value passed to substring could + potentially go beyond the length of the string. +⢠Lucene.Net.Benchmark.ByTask.Tasks.TestPerfTasksLogic.TestLocale(): Original test was using no-NO which + is not consistently supported across platforms on .NET. Changed the test (and the documentation) to use nb-NO instead. +⢠Lucene.Net.Tests.Benchmark.ByTask.TestPerfTasksLogic.TestCollator(): Changed culture from no-NO to nb-NO to ensure + it runs consistently between dev and the CI server. +⢠Lucene.Net.Support.DictionaryExtensions: Fixed Store() method to save the date using the InvariantCulture so the + format is unaffected by the ambient culture. +⢠Lucene.Net.TestFramework: Having sequential folder names creates situations where multiple threads are doing + operations on the same folder at the same time. Changed implementation to use GetRandomFileName() to append + a random string instead of an incremental number. +⢠Lucene.Net.Automaton (BasicAutomata + BasicOperations + MinimizationOperations + SpecialOperations): Corrected + accessibility from internal to public and removed InternalsVisibleTo attributes unneeded as a result of these changes. +⢠Lucene.Net.Tests.Expressions.TestExpressionSorts: Added missing Collections.Shuffle call +⢠Patched behavior of all implementations of String.Split() and Regex.Split() using the .TrimEnd() extension method. + In Java, only the empty entries at the end of the array are removed, not all empty entries. +⢠Lucene.Net.Tests.QueryParser.Flexible.Precedence.TestPrecedenceQueryParser: Fixed test to always use + GregorianCalendar and local time zone. +⢠Added TimeZoneInfo.ConvertTime() to corresponding locations where time zone had been set in Lucene. +⢠Lucene.Net.Tests.Search.TestControlledRealTimeReopenThread.DoAfterWriter(): Enabled Thread priority for + .NET Core 2.0 tests +⢠Lucene.Net.Tests.Search.TestMultiTermConstantScore: Added check to ensure a null instance variable + doesn't cause the AfterClass method to fail +⢠Lucene.Net.Index (ConcurrentMergeScheduler + TaskMergeScheduler): Fixed null reference exception + due to synchronization of list across threads. + +Improvement +⢠BREAKING: Changed namespace of Collections class from Lucene.Net to Lucene.Net.Support. +⢠BREAKING: Changed namespace of IcuBreakIterator class from Lucene.Net to Lucene.Net.Support. +⢠Fixed several broken XML documentation comment issues. +⢠Lucene.Net.Codecs.MultiLevelSkipListReader: Implemented proper dispose pattern. +⢠BREAKING: Lucene.Net.Index.SegmentCommitInfo: Renamed Files() method to GetFiles(). +⢠BREAKING: Lucene.Net.Index.SegmentInfos: Renamed Files() method to GetFiles(). +⢠BREAKING: Lucene.Net.Search.Similarities.LMSimilarity.ICollectionModel: Changed Name + property to GetName() method (consistency). +⢠BREAKING: Lucene.Net.Util (PagedBytes + PagedBytes.PagedBytesDataInput + PagedBytes.PagedBytesDataOutput): + Changed Pointer > GetPointer(), Position > GetPosition() +⢠Lucene.Net.Util.PrintStreamInfoStream: Marked obsolete and replaced with class named TextWriterInfoStream. +⢠Lucene.Net.Util.RamUsageEstimator: Added SizeOf() overloads for ulong, uint, and ushort +⢠BREAKING: Lucene.Net.MultiTermQuery: Removed nested ConstantScoreAutoRewrite class, since it is exactly + the same as the non-nested ConstantScoreAutoRewrite class. Made public constructor for ConstantScoreAutoRewrite. +⢠BREAKING: Lucene.Net.Index.SegmentReader.ICoreClosedListener: Renamed ICoreDisposedListener, OnClose() > OnDispose() +⢠Lucene.Net.Search.ReferenceManager: Implemented proper dispose pattern. +⢠Lucene.Net.Util.IOUtils: Added Dispose() and DisposeWhileHandlingException() overloads + and marked Close() and CloseWhileHandlingException() overloads [Obsolete]. +⢠Lucene.Net.Search.BooleanQuery: Added documentation to show .NET usage of collection initializer. +⢠Lucene.Net.Search.MultiPhraseQuery: Implemented IEnumerable<T> so collection initializer can be used and + added documentation to show usage of collection initializer. +⢠Lucene.Net.Search.PhraseQuery: Implemented IEnumerable<T> so collection initializer can be used and + added documentation to show usage of collection initializer. +⢠Lucene.Net.Search.NGramPhraseQuery: Added documentation to show usage of collection initializer. +⢠Lucene.Net.Queries.CommonTermsQuery: Implemented IEnumerable<T> so collection initializer can be used and + added documentation to show usage of collection initializer. +⢠Lucene.Net.Search.DisjunctionMaxQuery: Added documentation to show usage of collection initializer. +⢠Lucene.Net.Facet.Range.DoubleRangeFacetCounts: Added missing params keyword on ranges constructor argument. +⢠BREAKING: Lucene.Net.Support.MathExtension: Renamed MathExtensions and added overloads of ToRadians() + for decimal and int, and added the ToDegrees() method overloads. +⢠Lucene.Net.Analysis.Stempel: Modified Egothor.Stemmer Compile and DiffIt programs to accept file + encoding on the command line and cleaned up implementation. +â¢[Pull Request #207] - Added ReferenceManager<G>.GetContext(), which is similar to ReferenceManager<G>.Acquire() but can be + used in a using block to implicitly dereference instead of having to do it explicitly in a finally block. +⢠Lucene.Net.Support.Document: Added extension methods to make casting to the correct IIndexableField-derived type simpler. +⢠BREAKING: Lucene.Net.Store.FSDirectory: Removed Fsync() method and m_staleFiles variable and all references to them. +⢠Lucene.Net.Store.NativeFSLockFactory: Refactored implementation to utilize locking/sharing features of FileStream in .NET + on Windows only - fallback to a different locking strategy on other plaforms. (solution mostly provided by Vincent Van Den Burghe). +⢠Ported StreamTokenizer from Apache Harmony. +⢠Moved SystemProperties class from Lucene.Net.TestFramework to Lucene.Net so the more Java System.properties-like + default value and security exception handling can be used globally +⢠Lucene.Net.Support.Character: Ported Digit(char, int) method from Apache Harmony for use in Lucene.Net.Benchmark. +⢠Lucene.Net.Support.DictionaryExtensions: Added Load and Store methods from Apache Harmony, so an + IDictionary<string, string> can be used the same way the Properties class is used in Java + (saving and loading the same file format). +⢠Lucene.Net.Support.StringTokenizer: Did a fresh port from Apache Harmony and ported tests. +⢠Lucene.Net.Support: Added a SystemConsole class as a stand-in for System.Console, but with the ability to + swap Out and Error to a different destination than System.Out and System.Error. +⢠Lucene.Net.Support.StringExtensions: Added a TrimEnd() method that can be used on string arrays. + This is to mimic Java's Split() method that removes only the null or empty elements from the end + of the array that is returned, but leaves any prior empty elements intact. +⢠Lucene.Net.Support.StringBuilderExtensions: Added IndexOf() extension methods and tests from Apache Harmony. +⢠Lucene.Net.Util.SPIClassIterator: Factored out code to get all non-Microsoft referenced assemblies into a + new class in Support named AssemblyUtils +⢠BREAKING: Lucene.Net.Index.IIndexableField: Renamed FieldType > IndexableFieldType and added additional FieldType + property on Lucene.Net.Documents.Field that returns FieldType rather than IIndexableFieldType so we can avoid casting. +⢠Lucene.Net.Documents.Field: Added similar Number value types as in Java so the numeric types can be stored as object + without boxing/unboxing. Also added overloads for numeric GetXXXValue() fields to IIndexableField so numeric values + can be retrieved without boxing/unboxing. +⢠Lucene.Net.Documents.Field: Added NumericType property that returns an enum so the Field type can be determined without boxing/unboxing. +⢠Lucene.Net.Documents.Field: Added extension methods GetXXXValueOrDefault() to easily retrieve the numeric value if it is not a + concern that it could be null. +⢠BREAKING: Lucene.Net.Facet.Taxonomy.WriterCache.CharBlockArray: Refactored to use BinaryReader/BinaryWriter for serialzation + and eliminated the 2 serialization support classes StreamUtils and CharBlockArrayConverter +⢠BREAKING: Removed indescriminate use of [Serializable] and chose specific targets to make serializable, + namely types that maintain a single value, collection, or array. +⢠BREAKING: Added ICloneable to all places where it was used in Lucene, but made it a compilation option that can be used + in custom builds only, since Microsoft discourages use of this interface. +⢠Moved Intern() functionality to StringExtensions rather than using string.Intern() directly. +⢠Eliminated [Debuggable] attribute and added [MethodImpl(MethodImplOptions.NoInlining)] to each potential match + for the StackTraceHelper, which allows tests that use it to work in release mode. Solution provided by Vincent Van Den Berghe. +⢠Changed to new .csproj format and merged Lucene.Net.sln and Lucene.Net.Portable.sln files into one Lucene.Net.sln file. +⢠Require VS 2017+ to load solution +⢠Lucene.Net.Search.Suggest.Analyzing.FSTUtil.Path<T>.Output: Changed accessibility to public. This wasn't made public until + Lucene 5.1, but doing it for 4.8 since it is required by end users. +⢠BREAKING: Lucene.Net.MMapDirectory: Removed UnmapHack/UNMAP_SUPPORTED features since these are not needed in .NET. +⢠Lucene.Net.Suggest.Analyzing.FreeTextSuggester: Changed to use Path.GetRandomFileName() instead of using random + integers to make the file name. Changed to delete the folder using System.IO.Directory.Delete and rearranged + try catch statements so the Lucene Directory disposes before deleting the OS directory. +⢠Lucene.Net.TestFramework.Index.BasePostingsFormatTestCase + Lucene.Net.Suggest.Analyzing + (AnalyzingInfixSuggesterTest + TestFreeTextSuggester) + Lucene.Net.Tests.Index.TestCodecs: + Added using blocks to make the tests run more reliably. +⢠BREAKING: Lucene.Net.Support.IO.FileSupport: Removed unused GetFiles(), GetLuceneIndexFiles(), and Sync() methods +⢠Lucene.Net.Support.IO.FileSupport: Made class static +⢠Lucene.Net.Support.IO.FileSupport: Fixed several issues with CreateTempFile() implementation +⢠Lucene.Net.Support.IO.FileSupport: Added GetCanonicalPath() method + tests +⢠Swapped GetCanonicalPath() call into each of the locations where it was originally used in Lucene +⢠Lucene.Net + Lucene.Net.Facet + Lucene.Net.ICU: Added extension methods to Document class for adding + non-obsolete project-related Field types +⢠BREAKING: Lucene.Net.Facet: De-nested DrillSidewaysResult from DrillSideways class +⢠BREAKING: Lucene.Net.Support: Removed CharAt() method from StringCharSequenceWrapper +⢠Lucene.Net.Support: Added StringBuilderCharSequenceWrapper class and StringBuilder.ToCharSequence() + extension method. +â¢[LUCENENET-592] - Lucene.Net.QueryParser.Flexible: Added an overload of type StringBuilder for all + ICharSequence-based methods and constructors. + +New Feature +⢠Lucene.Net.Search.Filter: Added NewAnonymous() method for easy creation of anonymous classes via delegate methods. +⢠Lucene.Net.Search.DocIdSet: Added NewAnonymous() method for easy creation of anonymous classes via delegate methods. +⢠Lucene.Net.Search.Collector: Added Collector.NewAnonymous() method for easy creation of anonymous classes via delegate methods. +â¢[LUCENENET-514] - Ported Lucene.Net.Analysis.SmartCn (Smart Chinese Analyzer) +â¢[LUCENENET-569] - Ported Lucene.Net.Analysis.Phonetic +â¢[LUCENENET-563] - Ported Lucene.Net.Demo (part of lucene-cli utility) +â¢[LUCENENET-577] - Port Lock Stress Test CLI Utility (part of lucene-cli utility) +â¢[LUCENENET-576] - Port IndexUpgrader CLI Utility (part of lucene-cli utility) +â¢[LUCENENET-575] - Port CheckIndex CLI Utility (part of lucene-cli utility) +â¢[LUCENENET-582] - Port Index Splitter CLI Utility (part of lucene-cli utility) +â¢[LUCENENET-585] - Port High Freq Terms CLI Utility (part of lucene-cli utility) +â¢[LUCENENET-584] - Port Get Term Info CLI Utility (part of lucene-cli utility) +â¢[LUCENENET-581] - Port Compound File Extractor CLI Utility (part of lucene-cli utility) +â¢[LUCENENET-586] - Port Index Merge Tool CLI Utility (part of lucene-cli utility) +â¢[LUCENENET-583] - Port Multi-Pass Index Splitter CLI Utility (part of lucene-cli utility) +â¢[LUCENENET-579] - Port Print Taxonomy Stats CLI Utility (part of lucene-cli utility) +â¢[LUCENENET-578] - Port Lock Verify Server CLI Utility (part of lucene-cli utility) +â¢[LUCENENET-588] - Create unified CLI tool (lucene-cli) to wrap all Lucene maintenance tools and demos for .NET +â¢[LUCENENET-565 & Pull Request #209] - Port Lucene.Net.Replicator +â¢[LUCENENET-567] - Port Lucene.Net.Analysis.Kuromoji +⢠Added Collation features of Lucene.Net.Analysis.ICU to Lucene.Net.ICU (as linked files). +â¢[LUCENENET-564] - Port Lucene.Net.Benchmarks +⢠Added .NET Core 2.0 support +⢠Added .NET Framework 4.5 support +⢠Created JavaDocToMarkdownConverter utility to assist with converting java docs to markdown docs for docfx. + +=================== Release 4.8.0-beta00004 ===================== Bug ⢠AssemblyVersion and other metadata not being set on .NET Standard assemblies
