Skip to content

Commit ca61899

Browse files
committed
website: Added (temporary) release notes for 4.8.0-beta00013 that can be linked to publicly during the release vote
1 parent 56b60f8 commit ca61899

File tree

2 files changed

+176
-1
lines changed

2 files changed

+176
-1
lines changed

websites/site/docfx.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,8 @@
66
"contributing/**.md",
77
"contributing/**/toc.yml",
88
"download/**.md",
9-
"download/**/toc.yml",
9+
"download/**/toc.yml",
10+
"release-notes/**.md",
1011
"toc.yml",
1112
"*.md"]
1213
}
Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
---
2+
uid: releasenotes/4.8.0-beta00013
3+
version: 4.8.0-beta00013
4+
---
5+
6+
# Lucene.NET 4.8.0-beta00013 Release Notes
7+
8+
---
9+
10+
> This release contains important bug fixes and performance enhancements.
11+
12+
## Benchmarks (from [#310](https://github.com/apache/lucenenet/pull/310))
13+
14+
#### Index Files
15+
<details>
16+
<summary>Click to expand</summary>
17+
18+
``` ini
19+
20+
BenchmarkDotNet=v0.12.1, OS=Windows 10.0.19041.630 (2004/?/20H1)
21+
Intel Core i7-8850H CPU 2.60GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
22+
.NET Core SDK=5.0.100
23+
[Host] : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
24+
4.8.0-beta00005 : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
25+
4.8.0-beta00006 : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
26+
4.8.0-beta00007 : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
27+
4.8.0-beta00008 : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
28+
4.8.0-beta00009 : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
29+
4.8.0-beta00010 : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
30+
4.8.0-beta00011 : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
31+
4.8.0-beta00012 : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
32+
4.8.0-beta00013 : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
33+
34+
InvocationCount=1 IterationCount=15 LaunchCount=2
35+
UnrollFactor=1 WarmupCount=10
36+
37+
```
38+
| Method | Job | Mean | Error | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
39+
|----------- |---------------- |---------:|---------:|---------:|-----------:|----------:|----------:|----------:|
40+
| IndexFiles | 4.8.0-beta00005 | 628.1 ms | 8.41 ms | 12.05 ms | 43000.0000 | 8000.0000 | 7000.0000 | 220.82 MB |
41+
| IndexFiles | 4.8.0-beta00006 | 628.3 ms | 13.19 ms | 19.33 ms | 44000.0000 | 8000.0000 | 7000.0000 | 220.67 MB |
42+
| IndexFiles | 4.8.0-beta00007 | 617.2 ms | 8.44 ms | 11.83 ms | 44000.0000 | 8000.0000 | 7000.0000 | 220.73 MB |
43+
| IndexFiles | 4.8.0-beta00008 | 620.6 ms | 5.62 ms | 8.41 ms | 44000.0000 | 8000.0000 | 7000.0000 | 221.06 MB |
44+
| IndexFiles | 4.8.0-beta00009 | 632.8 ms | 12.57 ms | 18.43 ms | 44000.0000 | 8000.0000 | 7000.0000 | 220.95 MB |
45+
| IndexFiles | 4.8.0-beta00010 | 862.3 ms | 51.13 ms | 74.95 ms | 44000.0000 | 8000.0000 | 7000.0000 | 221.22 MB |
46+
| IndexFiles | 4.8.0-beta00011 | 636.5 ms | 11.06 ms | 15.87 ms | 44000.0000 | 8000.0000 | 7000.0000 | 221.09 MB |
47+
| IndexFiles | 4.8.0-beta00012 | 668.8 ms | 14.78 ms | 21.66 ms | 56000.0000 | 7000.0000 | 6000.0000 | 286.63 MB |
48+
| IndexFiles | 4.8.0-beta00013 | 626.7 ms | 7.78 ms | 10.91 ms | 43000.0000 | 8000.0000 | 7000.0000 | 219.8 MB |
49+
50+
</details>
51+
52+
#### Search Files
53+
<details>
54+
<summary>Click to expand</summary>
55+
56+
``` ini
57+
58+
BenchmarkDotNet=v0.12.1, OS=Windows 10.0.19041.630 (2004/?/20H1)
59+
Intel Core i7-8850H CPU 2.60GHz (Coffee Lake), 1 CPU, 12 logical and 6 physical cores
60+
.NET Core SDK=5.0.100
61+
[Host] : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
62+
4.8.0-beta00005 : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
63+
4.8.0-beta00006 : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
64+
4.8.0-beta00007 : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
65+
4.8.0-beta00008 : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
66+
4.8.0-beta00009 : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
67+
4.8.0-beta00010 : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
68+
4.8.0-beta00011 : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
69+
4.8.0-beta00012 : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
70+
4.8.0-beta00013 : .NET Core 3.1.9 (CoreCLR 4.700.20.47201, CoreFX 4.700.20.47203), X64 RyuJIT
71+
72+
IterationCount=15 LaunchCount=2 WarmupCount=10
73+
74+
```
75+
| Method | Job | Mean | Error | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
76+
|------------ |---------------- |---------:|--------:|---------:|-----------:|----------:|------:|----------:|
77+
| SearchFiles | 4.8.0-beta00005 | 274.8 ms | 7.01 ms | 10.28 ms | 18000.0000 | 1000.0000 | - | 82.12 MB |
78+
| SearchFiles | 4.8.0-beta00006 | 283.4 ms | 7.78 ms | 11.64 ms | 18000.0000 | 1000.0000 | - | 82.13 MB |
79+
| SearchFiles | 4.8.0-beta00007 | 291.5 ms | 8.91 ms | 13.33 ms | 18000.0000 | 1000.0000 | - | 81.9 MB |
80+
| SearchFiles | 4.8.0-beta00008 | 162.3 ms | 5.50 ms | 8.23 ms | 17000.0000 | 1000.0000 | - | 80.13 MB |
81+
| SearchFiles | 4.8.0-beta00009 | 165.6 ms | 2.61 ms | 3.90 ms | 17000.0000 | - | - | 80.13 MB |
82+
| SearchFiles | 4.8.0-beta00010 | 159.4 ms | 2.84 ms | 4.17 ms | 17000.0000 | 1000.0000 | - | 79.85 MB |
83+
| SearchFiles | 4.8.0-beta00011 | 160.8 ms | 1.93 ms | 2.77 ms | 17000.0000 | 1000.0000 | - | 79.85 MB |
84+
| SearchFiles | 4.8.0-beta00012 | 169.2 ms | 6.48 ms | 9.49 ms | 18000.0000 | 1000.0000 | - | 81.11 MB |
85+
| SearchFiles | 4.8.0-beta00013 | 161.6 ms | 3.28 ms | 4.80 ms | 14000.0000 | 1000.0000 | - | 65.78 MB |
86+
87+
</details>
88+
89+
## Change Log
90+
91+
### Breaking Changes
92+
* `Lucene.Net.Search.FieldCache`: Added interface `ICreationPlaceholder` and changed `CreationPlaceholder` class to `CreationPlaceHolder<TValue>`.
93+
94+
### Bugs
95+
* [#356](https://github.com/apache/lucenenet/pull/356) - `Lucene.Net.Store.NativeFSLockFactory`: Modified options to allow read access on non-Windows operating systems. This caused the copy constructor of `RAMDirectory` to throw "The process cannot access the file 'file path' because it is being used by another process" excpetions.
96+
* [#296](https://github.com/apache/lucenenet/pull/296) - `Lucene.Net.Util.Automaton.State`: Removed `Equals()` implementation; it was intended to use reference equality as a unique key. This caused random `IndexOperationException`s to occur when using `FuzzyTermsEnum`/`FuzzyQuery`.
97+
* [#387](https://github.com/apache/lucenenet/pull/387) - Fixed formatting in `ArgumentException` message for all analyzer factories so it will display the dictionary contents
98+
* [#387](https://github.com/apache/lucenenet/pull/387) - Lucene.Net.Util.ExceptionExtensions.GetSuppressedAsList(): Use `J2N.Collections.Generic.List<T>` so the call to `ToString()` will automatically list the exception messages
99+
* [#387](https://github.com/apache/lucenenet/pull/387) - `Lucene.Net.TestFramework.Analysis.MockTokenizer`: Pass the `AttributeFactory` argument that is provided as per the documentation comment. Note this bug exists in Lucene 4.8.0, also.
100+
* [#387](https://github.com/apache/lucenenet/pull/387) - `Lucene.Net.Analysis.Common.Tartarus.Snowball.Among`: Fixed `MethodObject` property to return private field instead of itself
101+
* [#387](https://github.com/apache/lucenenet/pull/387) - `Lucene.Net.Document.CompressionTools`: Pass the offset and length to the underlying `MemoryStream`
102+
* [#388](https://github.com/apache/lucenenet/pull/388) - Downgraded minimum required `Microsoft.Extensions.Configuration` version to 2.0.0 on .NET Standard 2.0 and 2.1
103+
104+
### Improvements
105+
* Updated code examples on website home page
106+
1. Show cross-OS examples of building `Directory` paths
107+
2. Demonstrate where to put `using` statements
108+
3. Removed LinqPad's `Dump()` method and replaced with `Console.WriteLine()` for clarity
109+
4. Fixed syntax error in initialization example of `MultiPhraseQuery`
110+
* Upgraded NuGet dependency J2N to 2.0.0-beta-0010
111+
* Upgraded NuGet dependency ICU4N to 60.1.0-alpha.353
112+
* Upgraded NuGet dependency Morfologik.Stemming to 2.1.7-beta-0001
113+
* [#344](https://github.com/apache/lucenenet/pull/344) - **PERFORMANCE**: `Lucene.Net.Search.FieldCacheImpl`: Removed unnecessary dictionary lookup
114+
* [#352](https://github.com/apache/lucenenet/pull/352) - Added Azure DevOps tests for x86 on all platforms
115+
* [#348](https://github.com/apache/lucenenet/pull/348) - **PERFORMANCE**: Reduced `FieldCacheImpl` casting/boxing
116+
* [#355](https://github.com/apache/lucenenet/pull/355) - Setup nightly build (https://dev.azure.com/lucene-net/Lucene.NET/_build?definitionId=4)
117+
* **PERFORMANCE**: `Lucene.Net.Util.Automaton.SortedInt32Set`: Removed unnecessary `IEquatable<T>` implementations and converted `FrozenInt32Set` into a struct.
118+
* **PERFORMANCE**: `Lucene.Net.Util.Bits`: Removed unnecessary `GetHashCode()` method from `MatchAllBits` and `MatchNoBits` (didn't exist in Lucene)
119+
* `Lucene.Net.Util.Counter`: Changed Get() to Value property and added implicit operator.
120+
* [#361](https://github.com/apache/lucenenet/pull/361) - Make `CreateDirectory()` method virtual so that derived classes can provide their own `Directory` implementation, allowing for benchmarking of custom `Directory` providers (e.q LiteDB)
121+
* [#346](https://github.com/apache/lucenenet/pull/346), [#383](https://github.com/apache/lucenenet/pull/383) - **PERFORMANCE**: Change delegate overloads of `Debugging.Assert()` to use generic parameters and `string.Format()` to reduce allocations. Use `J2N.Text.StringFormatter` to automatically format arrays and collections so the processing of converting it to a string is deferred until an assert fails.
122+
* [#296](https://github.com/apache/lucenenet/pull/296) - **PERFORMANCE**: `Lucene.Net..Index`: Calling `IndexOptions.CompareTo()` causes boxing. Added new `IndexOptionsComparer` class to be used in codecs instead.
123+
* [#387](https://github.com/apache/lucenenet/pull/387) - Fixed or Suppressed Code Analysis Rules
124+
* [CA1012](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1012): Abstract types should not have constructors
125+
* [CA1052](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1052): Static holder types should be Static or NotInheritable
126+
* [CA1063](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1063): Implement IDisposable Properly (except for IndexWriter). Partially addresses [#265](https://github.com/apache/lucenenet/pull/265).
127+
* [CA1507](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1507): Use nameof instead of string ([#366](https://github.com/apache/lucenenet/pull/366))
128+
* [CA1802](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1802): Use Literals Where Appropriate
129+
* [CA1810](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1810): Initialize reference type static fields inline
130+
* [CA1815](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1815): Override equals and operator equals on value types
131+
* [CA1819](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1819): Properties should not return arrays
132+
* [CA1820](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1820): Test for empty strings using string length
133+
* [CA1822](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1822): Mark members as static
134+
* [CA1825](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca1825): Avoid zero-length array allocations
135+
* [CA2213](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/quality-rules/ca2213): Disposable fields should be disposed (except for `IndexWriter` and subclasses which need more work)
136+
* [IDE0016](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0016): use throw expression ([#368](https://github.com/apache/lucenenet/pull/368))
137+
* [IDE0018](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0018): Inline variable declaration
138+
* [IDE0019](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0019): Use pattern matching to avoid 'is' check followed by a cast
139+
* [IDE0020](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0020-ide0038): Use pattern matching to avoid 'is' check followed by a cast
140+
* [IDE0021](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0021): Use block body for constructors
141+
* [IDE0025](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0025): Use expression body for properties
142+
* [IDE0027](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0027): Use expression body for accessors
143+
* [IDE0028](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0028): Use collection initializers
144+
* [IDE0029](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0029-ide0030): Use coalesce expression
145+
* [IDE0030](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0029-ide0030): Use coalesce expression (nullable)
146+
* [IDE0031](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0031): Use null propagation
147+
* [IDE0034](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0034): Simplify 'default' expression
148+
* [IDE0038](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0020-ide0038): Use pattern matching to avoid 'is' check followed by a cast
149+
* [IDE0039](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0039): Use local function
150+
* [IDE0040](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0040): Add accessibility modifiers
151+
* [IDE0041](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0041): Use is null check
152+
* [IDE0049](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0049): Use language keywords instead of framework type names for type references
153+
* [IDE0051](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0051): Remove unused private member
154+
* [IDE0052](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0052): Remove unread private member
155+
* [IDE0059](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0059): Remove unnecessary value assignment
156+
* [IDE0060](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0060): Remove unused parameter
157+
* [IDE0063](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0063): Use simple 'using' statement
158+
* [IDE0071](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide0071): Simplify interpolation
159+
* [IDE1005](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/ide1005): Use conditional delegate call
160+
* [IDE1006](https://docs.microsoft.com/en-us/dotnet/fundamentals/code-analysis/style-rules/naming-rules): Naming Styles
161+
* [#387](https://github.com/apache/lucenenet/pull/387) - Removed dead code/commented code
162+
* [#387](https://github.com/apache/lucenenet/pull/387) - **PERFORMANCE**: Added aggressive inlining in Codecs and Util namespaces
163+
* [#387](https://github.com/apache/lucenenet/pull/387) - Simplified reuse logic of `TermsEnum` subclasses
164+
* [#387](https://github.com/apache/lucenenet/pull/387) - **PERFORMANCE**: `Lucene.Net.Index.DocValuesProducer`: Optimized checks in `AddXXXField()` methods
165+
* [#387](https://github.com/apache/lucenenet/pull/387) - **PERFORMANCE**: `Lucene.Net.Index`: Changed `FieldInfos`, `FreqProxTermsWriterPerField`, `IndexWriter`, `LogMergePolicy`, `SegmentCoreReaders`, and `SegmentReader` to take advantage of the fact that `TryGetValue()` returns a boolean
166+
* [#370](https://github.com/apache/lucenenet/pull/370), [#389](https://github.com/apache/lucenenet/pull/389) - Reverted `FieldCacheImpl` delegate capture introduced in [#348](https://github.com/apache/lucenenet/pull/348)
167+
* [#390](https://github.com/apache/lucenenet/pull/390) - Added tests for .NET 5
168+
* [#390](https://github.com/apache/lucenenet/pull/390) - Upgraded to C# LangVersion 9.0
169+
170+
### New Features
171+
* [#358](https://github.com/apache/lucenenet/pull/358) - Added Community Links page to website
172+
* [#359](https://github.com/apache/lucenenet/pull/359) - Added builds mailing list to website
173+
* [#365](https://github.com/apache/lucenenet/pull/365) - Added "Fork me on GitHub" to website and API docs
174+
* `Lucene.Net.TestFramework`: Added `Assert.DoesNotThrow()` overloads

0 commit comments

Comments
 (0)