You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucenenet.apache.org by ni...@apache.org on 2022/02/12 19:48:19 UTC

[lucenenet] branch master updated: website: Added release notes for 4.8.0-beta00016

This is an automated email from the ASF dual-hosted git repository.

nightowl888 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/lucenenet.git


The following commit(s) were added to refs/heads/master by this push:
     new e6ca4a7  website: Added release notes for 4.8.0-beta00016
e6ca4a7 is described below

commit e6ca4a7758c21d37c7f3920668f0ae7445710b51
Author: Shad Storhaug <sh...@shadstorhaug.com>
AuthorDate: Sun Feb 13 02:46:48 2022 +0700

    website: Added release notes for 4.8.0-beta00016
---
 .../site/release-notes/version-4.8.0-beta00016.md  | 166 +++++++++++++++++++++
 1 file changed, 166 insertions(+)

diff --git a/websites/site/release-notes/version-4.8.0-beta00016.md b/websites/site/release-notes/version-4.8.0-beta00016.md
new file mode 100644
index 0000000..b645402
--- /dev/null
+++ b/websites/site/release-notes/version-4.8.0-beta00016.md
@@ -0,0 +1,166 @@
+---
+uid: releasenotes/4.8.0-beta00016
+version: 4.8.0-beta00016
+---
+
+# Lucene.NET 4.8.0-beta00016 Release Notes
+
+---
+
+> This release contains several important bug fixes and performance enhancements.
+
+## Breaking Index Changes
+
+There are 2 breaking changes that may affect some users when reading indexes that were created from version 4.8.0-beta00015 and all prior 4.8.0 beta versions (not including 3.0.3).
+1. A bug was fixed in the generation of segment file names. This only affects users with more than 10 segments in their index.
+2. `Lucene.Net.Documents.DateTools` has been modified to return _milliseconds since Unix epoch_ (that is, since Jan 1, 1970 at 00:00:00 UTC) by *default* to match Java Lucene. This only affects users who explicitly use `Lucene.Net.Documents.DateTools` in their application and store the result (in .NET ticks) in their index.
+
+If you are affected by either of the above issues, it is recommended to regenerate your indexes during upgrading. However, if that is not feasible, we have provided the following workarounds.
+
+1. If you have a large index with more than 10 segments, see [#576](https://github.com/apache/lucenenet/pull/576) for details on how to enable legacy segment name support.
+2. If you are storing the result of `Lucene.Net.Documents.DateTools.StringToTime(string)` or `Lucene.Net.Documents.DateTools.Round(long)` (a `long`) in your index, you are storing .NET ticks. There are now optional parameters `inputRepresentation` and `outputRepresentation` on these methods to specify whether the `long` value represents .NET ticks, .NET ticks as milliseconds, or millisenonds since the Unix epoch. To exactly match version 4.8.0-beta00015 and prior (including prior major v [...]
+    - `Lucene.Net.Documents.DateTools.StringToTime(string, NumericRepresentation)` should specify `NumericRepresentation.TICKS` for `outputRepresentation`.
+    - `Lucene.Net.Documents.DateTools.Round(long, NumericRepresentation, NumericRepresentation)` should specify `NumericRepresentation.TICKS_AS_MILLISECONDS` for `inputRepresentation` and `NumericRepresentation.TICKS` for `outputRepresentation`.
+
+## .NET Framework Recommendations
+
+It is recommended that all .NET Framework users migrate as soon as possible.
+
+1. In cases where `Lucene.Net.Support.WeakDictionary<TKey, TValue>` was used in .NET Framework and .NET Standard 2.0 due to missing APIs, but there is now a better solution using `Prism.Core`'s weak events in combination with `ConditionalWeakTable<TKey, TValue>`, which means memory management is handled entirely by the GC in `Lucene.Net.Index.IndexReader`, `Lucene.Net.Search.FieldCacheImpl`, `Lucene.Net.Search.CachingWrappingFilter` and `Lucene.Net.Facet.Taxonomy.CachedOrdinalsReader`. S [...]
+2. All known issues with loss of floating-point precision on .NET Framework x86 have been fixed.
+
+## Change Log
+
+### Breaking Changes
+* [#547](https://github.com/apache/lucenenet/pull/547) - `Lucene.Net.Util.StringHelper.GOOD_FAST_HASH_SEED`: converted from a static field to a property and marked obsolete. Added a new property `GoodFastHashSeed`. Removed `SystemProperties` call to populate the value of the field, since NUnit only allows us to generate a seed per test, and we need a way to inject the seed value for repeatability.
+* [#547](https://github.com/apache/lucenenet/pull/547) - `Lucene.Net.TestFramework`: Added `LuceneSetUpFixtureBuilder` class to load either a subclass or our default instance of `LuceneTestFrameworkInitializer`. Also added `LuceneTestCase.SetUpFixture` to control initialization of `LuceneTestFrameworkInitializer` so it is only called on setup and teardown for the assembly. Added `Initialize()` method to `LuceneTestFrameworkInitializer` that *must be used* when setting factories during testing.
+* [#547](https://github.com/apache/lucenenet/pull/547) - `Lucene.Net.TestFramework.Util.LuceneTestCase`: Deprecated `GetClassType()` method and added `TestType` property
+* [#547](https://github.com/apache/lucenenet/pull/547) - `Lucene.Net.TestFramework.Util.AbstractBeforeAfterRule``: Removed `LuceneTestCase` parameter from `Before()` and `After()` methods.
+* [#551](https://github.com/apache/lucenenet/pull/551) - Changed constructors of `Lucene.Net.Util.NumberFormat` and `Lucene.Net.QueryParsers.Flexible.Standard.Config.NumberDateFormat` to accept `IFormatProvider` rather than `CultureInfo` and changed `Lucene.Net.Util.NumberFormat.Culture` property to `Lucene.Net.Util.NumberFormat.FormatProvider`.
+* [#554](https://github.com/apache/lucenenet/pull/554) - `Lucene.Net.Misc`: Made `DocFreqComparer` and `TotalTermFreqComparer` into static singletons, only accessible by the `Default` property.
+* [#428](https://github.com/apache/lucenenet/pull/428), [#429](https://github.com/apache/lucenenet/pull/429), [#570](https://github.com/apache/lucenenet/pull/570) - `Lucene.Net.Search.FieldComparer`: Redesigned implementation to use reference types for numerics (from J2N) to avoid boxing.
+* [#570](https://github.com/apache/lucenenet/pull/570) - `Lucene.Net.Search.FieldCache.IParser`: Renamed method from `TermsEnum()` to `GetTermsEnum()` to match other APIs
+* [#570](https://github.com/apache/lucenenet/pull/570) - `Lucene.Net.Queries`: `ObjectVal()` returns a `J2N.Numerics.Number`-derived type rather than a value type cast to object. Direct casts to `int`, `long`, `double`, `single`, etc. will no longer work without first casting to the `J2N.Numerics.Number`-derived type. Alternatively, use the corresponding `Convert.ToXXX()` method for the type you wish to retrieve from the object.
+* [#574](https://github.com/apache/lucenenet/pull/574) - `Lucene.Net.Suggest.Fst.FSTCompletionLookup/WFSTCompletionLookup`: Changed `Get()` to return `long?` instead of `object` to eliminate boxing/unboxing
+* [#574](https://github.com/apache/lucenenet/pull/574) - `Lucene.Net.Index.MergePolicy::FindForcedMerges()`: Removed unnecessary nullable from `FindForcedMerges()` and all `MergePolicy` subclasses
+* [#574](https://github.com/apache/lucenenet/pull/574) - `Lucene.Net.Replicator`: Changed callback signature from `Func<bool?>` to `Action`, since the return value had no semantic meaning
+* [#575](https://github.com/apache/lucenenet/pull/575) - `Lucene.Net.Index.DocValuesFieldUpdates`: Refactored so the subclasses will handle getting the values from `DocValuesFieldUpdatesIterator` or `DocValuesUpdate` via a cast rather than boxing the value. Also marked internal (as well as all members of `BufferedUpdates`), since this was not supposed to be part of the public API.
+* [#573](https://github.com/apache/lucenenet/pull/573), [#576](https://github.com/apache/lucenenet/pull/576) - Changed segment file names to match Lucene 4.8.0 and Lucene.NET 3.x
+* [#577](https://github.com/apache/lucenenet/pull/577) - `Lucene.Net.Index.SegmentInfos`: Changed `Info()` method to an indexer (.NET Convention)
+* [#580](https://github.com/apache/lucenenet/pull/580) - `Lucene.Net.Documents.DateTools` - Added `NumericRepresentation` enum to allow converting to/from long in the following formats:
+  - Unix Epoch (default): Milliseconds since Jan 1, 1970 12:00:00 AM UTC.
+  - Ticks: The raw ticks from `DateTime` or `DateTimeOffset`.
+  - Ticks as Milliseconds: This is for compatibility with prior versions of Lucene.NET (3.0.3 and 4.8.0-beta00001 - 4.8.0-beta00015). The conversion done on input values is `time * TimeSpan.TicksPerMillisecond` and the conversion to output values is `time / TimeSpan.TicksPerMillisecond`.
+
+    **The `long` return value from `Lucene.Net.Documents.DateTools.StringToTime(string, NumericRepresentation)` has been changed from `NumericRepresentation.TICKS` to `NumericRepresentation.UNIX_TIME_MILLISECONDS` by default.**
+
+    **The `long` input parameter provided to `Lucene.Net.Documents.DateTools.Round(long, NumericRepresentation, NumericRepresentation)` has been changed from `NumericRepresentation.TICKS_AS_MILLISECONDS` to `NumericRepresentation.UNIX_TIME_MILLISECONDS` by default.**
+
+    **The `long` return value from `Lucene.Net.Documents.DateTools.Round(long, NumericRepresentation, NumericRepresentation)` has changed from `NumericRepresentation.TICKS` to `NumericRepresentation.UNIX_TIME_MILLISECONDS` by default.**
+* [#580](https://github.com/apache/lucenenet/pull/580) - `Lucene.Net.Documents.DateTools` - De-nested `Resolution` enum and renamed `DateResolution`.
+* [#580](https://github.com/apache/lucenenet/pull/580) - `Lucene.Net.QueryParsers.Flexible.Standard`: Changed numeric nodes to accept and return `J2N.Numerics.Number`-derived types instead of `object`.
+* [#581](https://github.com/apache/lucenenet/pull/581) - **SWEEP:** `Lucene.Net.Util.Fst`: Changed API to use `J2N.Numerics.Int64` instead of `long?` for generic closing type as it was designed to use reference equality comparison.
+* [#581](https://github.com/apache/lucenenet/pull/581) - **SWEEP:** `Lucene.Net.Util.Fst`: Added class constraints to each generic FST type and reverted to reference equality comparisons.
+* [#581](https://github.com/apache/lucenenet/pull/581), [#279](https://github.com/apache/lucenenet/pull/279) - `Lucene.Net.Util.Fst.Int32sRefFSTEnum`: Added `MoveNext()` method and marked `Next()` method obsolete. This change had already been done to BytesRefFSTEnum, which made them inconsistent.
+* [#583](https://github.com/apache/lucenenet/pull/583) - `Lucene.Net.QueryParsers.Flexible`: Removed unnecessary nullable value types from `ConfigurationKeys` and configuration setters/getters in `StandardQueryParser`. Added `AbstractQueryConfig.TryGetValue()` method to allow retrieving value types so they can be defaulted properly.
+* [#583](https://github.com/apache/lucenenet/pull/583) - `Lucene.Net.Queries.Function.ValueSources.EnumFieldSource::ctor()` - changed `enumIntToStringMap` to accept `IDictionary<int, string>` instead of `IDictionary<int?, string>` (removed unnecessary nullable)
+* [#587](https://github.com/apache/lucenenet/pull/587) - `Lucene.Net.TestFramework.Store.MockDirectoryWrapper`: Renamed `AssertNoUnreferencedFilesOnClose` to `AssertNoUnreferencedFilesOnDispose`
+* [#619](https://github.com/apache/lucenenet/pull/619) - `Lucene.Net.Spatial`: Upgraded to new Spatial4n NuGet package that unifies the types from Spatial4n.Core and Spatial4n.Core.NTS
+* [#619](https://github.com/apache/lucenenet/pull/619) - `Lucene.Net.Spatial.Prefix.Tree.Cell`: Renamed `m_outerInstance` > `m_spatialPrefixTree` and constructor parameter `outerInstance` > `spatialPrefixTree`
+* [#619](https://github.com/apache/lucenenet/pull/619) - `Lucene.Net.Spatial.Prefix.AbstractPrefixTreeFilter.BaseTermsEnumTransverser`: renamed `m_outerInstance` > `m_filter`, constructor parameter `outerInstance` > `filter`
+* [#619](https://github.com/apache/lucenenet/pull/619) - `Lucene.Net.Spatial.Prefix.AbstractPrefixTreeFilter`: De-nested `BaseTermsEnumTraverser`class
+* [#619](https://github.com/apache/lucenenet/pull/619) - `Lucene.Net.Spatial.Prefix.Tree.GeohashPrefixTree.Factory`: de-nested and renamed `GeohashPrefixTreeFactory`
+* [#619](https://github.com/apache/lucenenet/pull/619) - `Lucene.Net.Spatial.Prefix.Tree.QuadPrefixTree.Factory`: de-nested and renamed `QuadPrefixTreeFactory`
+* [#619](https://github.com/apache/lucenenet/pull/619) - `Lucene.Net.Spatial.Prefix.AbstractVisitingPrefixTreeFilter`: De-nested `VisitorTemplate` class and changed protected field `m_prefixGridScanLevel` to a public property named `PrefixGridScanLevel`.
+* [#619](https://github.com/apache/lucenenet/pull/619) - `Lucene.Net.Spatial.Query`: Renamed `UnsupportedSpatialOperation` > `UnsupportedSpatialOperationException` to match .NET conventions
+
+### Bugs
+* [#363](https://github.com/apache/lucenenet/pull/363), [#534](https://github.com/apache/lucenenet/pull/534) - `Lucene.Net.Replicator.Http.HttpReplicatorTest::TestBasic()`. This was failing intermittently due to the Timeout value being set to 1 second instead of the 60 second value that was used in Java. It has been increased to the .NET default of 100 seconds.
+* [#363](https://github.com/apache/lucenenet/pull/363), [#534](https://github.com/apache/lucenenet/pull/534) - `Lucene.Net.Replicator.IndexAndTaxonomyReplicationClientTest::TestConsistencyOnExceptions()` and `Lucene.Net.Replicator.IndexReplicationClientTest::TestConsistencyOnExceptions()` were failing due to to exceptions being raised on the worker thread and missing locks, which have both been addressed.
+* [#535](https://github.com/apache/lucenenet/pull/535) - Added `[SuppressCodecs]` attribute where required for custom Lucene.NET tests
+* [#536](https://github.com/apache/lucenenet/pull/536) - Modified all `TermsEnum.MoveNext()` methods to return a check for `null` rather than returning `true`
+* [#537](https://github.com/apache/lucenenet/pull/537) - `Lucene.Net.TestFramework.Index.BasePostingsFormatTestCase`: Removed `IndexOptions.NONE` from the list of available options, since it is not a valid test option
+* [#539](https://github.com/apache/lucenenet/pull/539) - `Lucene.Net.Grouping.Term.TermAllGroupHeadsCollector`: Use `NumericUtils.SingleToSortableInt32()` to compare floating point numbers (Fixes `AllGroupHeadCollectorTest.TestRandom()` on .NET Framework x86).
+* [#540](https://github.com/apache/lucenenet/pull/540) - `Lucene.Net.Tests.Util.TestPriorityQueue`: Fixed issues with comparers after introducing `J2N.Randomizer`, which produces negative random numbers.
+* [#541](https://github.com/apache/lucenenet/pull/541) - `Lucene.Net.Codecs.SimpleText.SimpleTextFieldsReader::NextDoc()`: Fixed assert that was throwing on `BytesRef.Utf8ToString()`
+* [#542](https://github.com/apache/lucenenet/pull/542) - `Lucene.Net.Util.Automation.MinimizationOperations::MinimizeHopcroft()`: Fixed range in `OpenBitSet.Clear()`
+* [#543](https://github.com/apache/lucenenet/pull/543) - `Lucene.Net.Tests.QueryParser.Flexible.Standard.TestQPHelper`: Use `ParseExact()` method to specify the date format, so it works across cultures.
+* [#527](https://github.com/apache/lucenenet/pull/527), [#548](https://github.com/apache/lucenenet/pull/548) - `Lucene.Net.Search.Suggest.Analyzing.BlendedInfixSuggester`: Apply patch from https://issues.apache.org/jira/browse/LUCENE-6093 to fix `ArgumentNullException` if there were discarded trailing characters in the query (Thanks @Maxwellwr)
+* [#550](https://github.com/apache/lucenenet/pull/550) - **SWEEP:** `Use `StringComparer.Ordinal` for `Sort()` methods, where appropriate
+* [#551](https://github.com/apache/lucenenet/pull/551) - `Lucene.Net.QueryParser.Flexible.Standard`: Fixed calendar handling on .NET Core
+* [#552](https://github.com/apache/lucenenet/pull/552) - `Lucene.Net.Suggest.Jaspell.JaspellTernarySearchTree`: Fixed random number generator so it produces random numbers
+* [#553](https://github.com/apache/lucenenet/pull/553), [#609](https://github.com/apache/lucenenet/pull/609) - `Lucene.Net.TestFramework.Util.TestUtil::RandomAnalysisString()`: Fixed `ArgumentOutOfRangeException` when passed a `maxLength` of 0.
+* [#546](https://github.com/apache/lucenenet/pull/546), [#557](https://github.com/apache/lucenenet/pull/557) - `Lucene.Net.Search.DisjunctionMaxScorer`: Fixed x86 floating point precision issue on .NET Framework
+* [#558](https://github.com/apache/lucenenet/pull/558) - `Lucene.Net.Expressions.ScoreFunctionValues`: Fixed x86 floating point precision issue on .NET Framework
+* [#559](https://github.com/apache/lucenenet/pull/559) - `Lucene.Net.Spatial.Prefix.SpatialOpRecursivePrefixTreeTest`: Ported over patch from https://github.com/apache/lucene/commit/e9906a334b8e123e93b917c3feb6e55fed0a8c57 (from 4.9.0).
+* [#545](https://github.com/apache/lucenenet/pull/545), [#565](https://github.com/apache/lucenenet/pull/565) - `Lucene.Net.Index.TestDuelingCodecs::TestEquals()`: There was a missing ! in `Lucene.Net.Codecs.BlockTreeTermsReader.IntersectEnum.Frame::Load()` that was inverting the logic, causing this test to fail intermittently.
+* [#549](https://github.com/apache/lucenenet/pull/549), [#566](https://github.com/apache/lucenenet/pull/566) - `Lucene.Net.Search.TestJoinUtil::TestMultiValueRandomJoin()`: Fixed x86 floating point precision issue on .NET Framework
+* [#568](https://github.com/apache/lucenenet/pull/568) - `Lucene.Net.Search.Spell.TestSpellChecker::TestConcurrentAccess()`: Fixed issues that were causing the test to hang due to concurrency problems.
+* [#513](https://github.com/apache/lucenenet/pull/513), [#572](https://github.com/apache/lucenenet/pull/572) - Updated `ControlledRealTimeReopenThread` to correctly handle timing (thanks @rclabo)
+* `Lucene.Net.Support.Collections.ReverseComparer<T>`: Replaced `CaseInsensitiveComparer` with `J2N.Collections.Generic.Comparer<T>`. This only affects tests.
+* [#597](https://github.com/apache/lucenenet/pull/597) - `.github/workflows`: Updated website/documentation configs to use subdirectory glob patterns for paths.
+* [#598](https://github.com/apache/lucenenet/pull/598) - Website: Fixed codeclimber article broken links
+* [#600](https://github.com/apache/lucenenet/pull/600) - Fixed broken book link for Instant Lucene.NET (Thanks @rclabo)
+* [#606](https://github.com/apache/lucenenet/pull/606) - `Lucene.Net.Search.FieldCacheImpl.Cache<TKey, TValue>::Put()`: Logic was inverted on `innerCache` field so the value was being updated if exists, when it should not be updated in this case
+* [#606](https://github.com/apache/lucenenet/pull/606) - `Lucene.Net.Search.FieldCacheImpl::Cache<TKey, TValue> (Put + Get)`: Fixed issue with `InitReader()` being called prior to adding the item to the cache when it should be called after
+* [#619](https://github.com/apache/lucenenet/pull/619) - `Lucene.Net.Spatial.Query.SpatialArgs::ctor()`: Set `operation` and `shape` fields rather than calling the virtual properties to set them (which can cause initialization issues for subclasses)
+
+### Improvements
+* [#538](https://github.com/apache/lucenenet/pull/538) - `Lucene.Net.TestFramework.Search.CheckHits::CheckHitCollector()`: Removed unnecessary call to `Convert.ToInt32()` and simplified collection initialization.
+* [#554](https://github.com/apache/lucenenet/pull/554) - **SWEEP:** Made stateless private sealed comparers into singletons to reduce allocations (unless they already have a static property)
+* [#555](https://github.com/apache/lucenenet/pull/555), [#526](https://github.com/apache/lucenenet/pull/526) - Deprecated support for `System.Threading.Thread.Interrupt()` when writing indexes due to the high possibility in .NET that it could break a `Commit()` or cause a deadlock.
+* [#567](https://github.com/apache/lucenenet/pull/567) - Enabled `[Serializable]` exceptions on all target platforms (previously, exceptions were not serializable in .NET Core)
+* [#274](https://github.com/apache/lucenenet/pull/274), [LUCENENET-574](https://issues.apache.org/jira/browse/LUCENENET-574), [#567](https://github.com/apache/lucenenet/pull/567) - Removed `[Serializable]` support for all classes except for the following (See [#567](https://github.com/apache/lucenenet/pull/567) for a complete list)
+   * Exceptions
+   * Collections
+   * Low-level holder types (such as BytesRef, CharsRef, etc.)
+   * Stateless `IComparer<T>` implementations that are publicly exposed directly or through collections
+* [#568](https://github.com/apache/lucenenet/pull/568) - `Lucene.Net.TestFramework.Util.LuceneTestCase::NewSearcher()`: Added missing event handler to shut down `LimitedConcurrencyLevelTaskScheduler` to prevent it from accepting new work when we are attempting to end the background process.
+* [#568](https://github.com/apache/lucenenet/pull/568) - `Lucene.Net.Support`: Factored out `ICallable<V>` and `ICompletionService<V>` interfaces, as they are not needed
+* [#570](https://github.com/apache/lucenenet/pull/570) - **PERFORMANCE:** `Lucene.Net.Search.NumericRangeQuery`: Eliminated boxing when converting from T to the numeric type and when comparing equality
+* [#570](https://github.com/apache/lucenenet/pull/570) - **PERFORMANCE:** `Lucene.Net.Suggest.Jaspell`: Use J2N numeric types to eliminate boxing
+* [#570](https://github.com/apache/lucenenet/pull/570) - **PERFORMANCE:** `Lucene.Net.Search.FieldCache`: Use J2N parsers and formatters
+* [#570](https://github.com/apache/lucenenet/pull/570) - **PERFORMANCE:** `Lucene.Net.Classification.Utils.DatasetSplitter`: Removed duplicate calls to field methods and stored values in local variables. Use default round-trip format from J2N.
+* [#570](https://github.com/apache/lucenenet/pull/570) - **PERFORMANCE:** `Lucene.Net.Search.FieldCacheRangeFilter`: Use `HasValue` and `Value` for nullable value types rather casting and comparing to null
+* [#574](https://github.com/apache/lucenenet/pull/574), [#583](https://github.com/apache/lucenenet/pull/583) - **SWEEP:** - Removed unnecessary nullable value types
+* [#578](https://github.com/apache/lucenenet/pull/578) - `Lucene.Net.Facet`: Added culture-sensitve `ToString()` overload on `FacetResult` and `LabelAndValue`
+* [#578](https://github.com/apache/lucenenet/pull/578) - `Lucene.Net.Facet.FacetResult`: Added nullable reference type support
+* [#579](https://github.com/apache/lucenenet/pull/579) - `Lucene.Net.Facet.DrillDownQuery`: Added collection initializer support
+* [#580](https://github.com/apache/lucenenet/pull/580) - `Lucene.Net.Documents.DateTools` - Added support for `TimeZoneInfo` when converting to/from string
+* [#580](https://github.com/apache/lucenenet/pull/580) - `Lucene.Net.QueryParsers.Flexible.Standard.Config.NumberDateFormat`: Added constructor overload to format a date without a time.
+* [#580](https://github.com/apache/lucenenet/pull/580) - `Lucene.Net.QueryParsers.Flexible.Standard.Config.NumberDateFormat`: Added `NumericRepresentation` property to set the representation to use for both `Format()` and `Parse()`.
+* [#580](https://github.com/apache/lucenenet/pull/580) - `Lucene.Net.QueryParsers` - Added support for `TimeZoneInfo` when converting to/from string (Classic and Flexible query parsers)
+* [#580](https://github.com/apache/lucenenet/pull/580) - `Lucene.Net.QueryParsers.Classic.QueryParserBase`: Use `TryParse()` instead of `Parse()` to parse numeric values. Use the current culture, but fall back to invariant culture.
+* [#582](https://github.com/apache/lucenenet/pull/582) - **PERFORAMANCE:** `Lucene.Net.Search.FieldCacheRangeFilter`: Eliminated boxing in `Equals()` check
+* [#584](https://github.com/apache/lucenenet/pull/584) - `Lucene.Net.Expressions.SimpleBindings`: Added collection initializer support. Updated `DistanceFacetsExample` and `ExpressionAggregationFacetsExample` to demonstrate usage.
+* [#586](https://github.com/apache/lucenenet/pull/586) - **SWEEP:** Removed conditional compilation for MSTest/xUnit and the following features:
+   - TESTFRAMEWORK_MSTEST
+   - TESTFRAMEWORK_NUNIT
+   - TESTFRAMEWORK_XUNIT
+   - FEATURE_INSTANCE_TESTDATA_INITIALIZATION
+   - FEATURE_INSTANCE_CODEC_IMPERSONATION
+* [#587](https://github.com/apache/lucenenet/pull/587) - Fixed the documentation comments for `LuceneTestCase`
+* [#587](https://github.com/apache/lucenenet/pull/587) - Added some documentation for random seed configuration
+* [#587](https://github.com/apache/lucenenet/pull/587) - Implemented some missing console logging
+* [#588](https://github.com/apache/lucenenet/pull/588) - `lucene-cli`: Added embedded readme to NuGet package and updated build to update docs with release version number
+* [#590](https://github.com/apache/lucenenet/pull/590) - **SWEEP:** Added links to release notes and documentation in each NuGet package, and corrected package descriptions.
+* [#594](https://github.com/apache/lucenenet/pull/594) - Website: Improved content of contributing/source code page to show current information about the Apache's two-master setup and provided additional information about contributing source code with many links to external references. (Thanks @rclabo)
+* [#595](https://github.com/apache/lucenenet/pull/595) - Website: Added "How to Setup Java Debugging" page. (Thanks @rclabo)
+* [#602](https://github.com/apache/lucenenet/pull/602) - Shifted most of the `IndexWriter` tests to `Lucene.Net.Tests._I-J` to make both `Lucene.Net.Tests._E-I` and `Lucene.Net.Tests._I-J` run less than 2 minutes. This cuts the total time on Azure DevOps by around 5 minutes.
+* [#603](https://github.com/apache/lucenenet/pull/603), [#601](https://github.com/apache/lucenenet/pull/601) - Upgraded build tools for `LuceneDocsPlugins` project
+* Upgraded J2N NuGet package dependency to 2.0.0
+* Upgraded ICU4N NuGet package dependency to 60.1.0-alpha.356
+* Upgraded RandomizedTesting.Generators NuGet package dependency to 2.7.8
+* Upgraded Morfologik.Stemming NuGet package dependency to 2.1.7
+* [#611](https://github.com/apache/lucenenet/pull/611) - **PERFORMANCE:** Fixed `NIOFSDirectory` bottleneck on multiple instances by switching from a static shared lock to a lock per `FileStream` instance.
+* [#611](https://github.com/apache/lucenenet/pull/611) - `Lucene.Net.Store`: Updated the `FSDirectory` documentation to remove irrelevant Java info and replace it with performance characteristics of the .NET implementation.
+* [#613](https://github.com/apache/lucenenet/pull/613), [#256](https://github.com/apache/lucenenet/pull/256), [#604](https://github.com/apache/lucenenet/pull/604), [#605](https://github.com/apache/lucenenet/pull/605) - **PERFORMANCE:** Factored out `WeakDictionary<TKey, TValue>` in favor of weak events using [Prism.Core](https://github.com/PrismLibrary/Prism)
+* [#617](https://github.com/apache/lucenenet/pull/617) - **SWEEP:** Changed "== null" to "is null"
+* [#619](https://github.com/apache/lucenenet/pull/619) - **SWEEP:** `Lucene.Net.Spatial`: Enabled nullable reference type support
+* [#619](https://github.com/apache/lucenenet/pull/619) - **SWEEP:** `Lucene.Net.Spatial`: Added guard clauses, where appropriate
+
+### New Features
+* [#288](https://github.com/apache/lucenenet/pull/288), [#547](https://github.com/apache/lucenenet/pull/547) - `Lucene.Net.TestFramework`: Fixed random seed functionality so it is repeatable, so random tests can be more easily debugged. The random seed and how to configure a test assembly to repeat the same result is appended to the output message of the test (which becomes visible upon failure). The `J2N.Randomizer` class was used to provide random numbers, which uses the same implement [...]
+* [#588](https://github.com/apache/lucenenet/pull/588), [#612](https://github.com/apache/lucenenet/pull/612) - `lucene-cli`: Added multitarget support for .NET Core 3.1, .NET 5.0, and .NET 6.0
+* [#592](https://github.com/apache/lucenenet/pull/592) - Added [Source Link](https://docs.microsoft.com/en-us/dotnet/standard/library-guidance/sourcelink) support and added documentation page to the API docs.
+* [#593](https://github.com/apache/lucenenet/pull/593), [#596](https://github.com/apache/lucenenet/pull/596), [#364](https://github.com/apache/lucenenet/pull/364) - Added Cross-Platform Build Script
\ No newline at end of file