Skip to content

Commit 720eae1

Browse files
update markdown files
1 parent ed591b4 commit 720eae1

File tree

5 files changed

+44
-22
lines changed

5 files changed

+44
-22
lines changed

README.md

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
![CmdScale Project](https://github.com/cmdscale/.github/raw/main/profile/assets/CmdShield.svg)
1+
# CmdScale.EntityFrameworkCore.TimescaleDB
2+
3+
![CmdScale Project](https://github.com/cmdscale/.github/raw/main/profile/assets/CmdShield.svg)
24
[![Test Workflow](https://github.com/cmdscale/CmdScale.EntityFrameworkCore.TimescaleDB/actions/workflows/run-tests.yml/badge.svg)](https://github.com/cmdscale/CmdScale.EntityFrameworkCore.TimescaleDB/actions/workflows/run-tests.yml)
35
[![codecov](https://codecov.io/gh/cmdscale/CmdScale.EntityFrameworkCore.TimescaleDB/graph/badge.svg?token=YP3YCJLQ41)](https://codecov.io/gh/cmdscale/CmdScale.EntityFrameworkCore.TimescaleDB)
46
[![GitHub release (latest by date)](https://img.shields.io/github/v/tag/cmdscale/CmdScale.EntityFrameworkCore.TimescaleDB)](https://github.com/cmdscale/CmdScale.EntityFrameworkCore.TimescaleDB/tags)
57
[![GitHub issues](https://img.shields.io/github/issues/cmdscale/CmdScale.EntityFrameworkCore.TimescaleDB)](https://github.com/cmdscale/CmdScale.EntityFrameworkCore.TimescaleDB/issues)
68
[![GitHub license](https://img.shields.io/github/license/cmdscale/CmdScale.EntityFrameworkCore.TimescaleDB)](https://github.com/cmdscale/CmdScale.EntityFrameworkCore.TimescaleDB/blob/main/LICENSE)
79
![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)
810

9-
# CmdScale.EntityFrameworkCore.TimescaleDB
10-
1111
This repository provides the essential libraries and tooling to seamlessly integrate [TimescaleDB](https://www.timescale.com/), the leading open-source time-series database, with Entity Framework Core. It is designed to give you the full power of TimescaleDB's features, like hypertables and compression, directly within the familiar EF Core environment.
1212

1313
- **CmdScale.EntityFrameworkCore.TimescaleDB**: The core runtime library. You include this in your project to enable TimescaleDB-specific features when configuring your `DbContext`.
@@ -48,10 +48,10 @@ Create and manage **TimescaleDB continuous aggregates** — automatically refres
4848

4949
To get started, install the necessary packages from NuGet. For a typical project, you will need both.
5050

51-
| Package | Description |
52-
|--------|-------------|
53-
| `CmdScale.EntityFrameworkCore.TimescaleDB` | Runtime support for EF Core + TimescaleDB |
54-
| `CmdScale.EntityFrameworkCore.TimescaleDB.Design` | Design-time support for EF Core tooling |
51+
| Package | Description |
52+
| ------------------------------------------------- | ----------------------------------------- |
53+
| `CmdScale.EntityFrameworkCore.TimescaleDB` | Runtime support for EF Core + TimescaleDB |
54+
| `CmdScale.EntityFrameworkCore.TimescaleDB.Design` | Design-time support for EF Core tooling |
5555

5656
---
5757

@@ -152,6 +152,7 @@ docker-compose up -d
152152
### Resetting the Database Environment
153153

154154
If you need to start with a completely fresh, empty database, you can stop the running container and permanently delete all of its data.
155+
155156
> **Warning**: This command is destructive and will erase all tables and data stored in your local TimescaleDB instance.
156157
157158
```bash
@@ -168,10 +169,10 @@ This project uses a two-tier testing strategy to ensure code quality and correct
168169
169170
### Test Projects
170171

171-
| Project | Purpose |
172-
|---------|---------|
173-
| `CmdScale.EntityFrameworkCore.TimescaleDB.Tests` | Unit tests using xUnit and Moq. Fast, isolated tests for differs, extractors, generators, and conventions. Also includes integration tests using Testcontainers. |
174-
| `CmdScale.EntityFrameworkCore.TimescaleDB.FunctionalTests` | EF Core specification tests validating end-to-end behavior against a real TimescaleDB instance. |
172+
| Project | Purpose |
173+
| ---------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
174+
| `CmdScale.EntityFrameworkCore.TimescaleDB.Tests` | Unit tests using xUnit and Moq. Fast, isolated tests for differs, extractors, generators, and conventions. Also includes integration tests using Testcontainers. |
175+
| `CmdScale.EntityFrameworkCore.TimescaleDB.FunctionalTests` | EF Core specification tests validating end-to-end behavior against a real TimescaleDB instance. |
175176

176177
### Running Tests
177178

@@ -282,7 +283,18 @@ Or, configure it in Visual Studio:
282283
2. Navigate to the `Package Sources` section.
283284
3. Click the '+' icon to add a new source, give it a name (e.g., "LocalCmdScale"), and set the path to your local feed folder.
284285

285-
---
286+
## 🔖 Release strategy
287+
288+
Eftdb targets the latest .NET LTS release. Support follows a rolling two-version model:
289+
290+
| Support Level | Scope |
291+
| ---------------- | -------------------------- |
292+
| **Current LTS** | New features and bug fixes |
293+
| **Previous LTS** | Critical bug fixes only |
294+
295+
**Example:** When .NET 12 (LTS) releases, it becomes the development target. .NET 10 receives only critical fixes, and .NET 8 support ends.
296+
297+
This policy balances maintainability with ensuring the most widely-used .NET versions receive support.
286298

287299
## 📚 Resources
288300

@@ -342,9 +354,7 @@ If you have questions, ideas, or need help getting started, feel free to [open a
342354

343355
Thank you for contributing! 💜
344356

345-
---
346-
347-
# 📄 License
357+
## 📄 License
348358

349359
```txt
350360
MIT License

benchmarks/Eftdb.Benchmarks/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ This project uses **BenchmarkDotNet** to measure the performance of high-through
66

77
## Prerequisites
88

9-
- .NET 10 SDK or later
9+
- .NET 10 SDK or later
1010
- Docker
1111

1212
## Run the Benchmarks
@@ -25,7 +25,7 @@ You can run the benchmark project in one of two ways:
2525

2626
Right-click on the `CmdScale.EntityFrameworkCore.TimescaleDB.Benchmarks` project and select:
2727

28-
```
28+
```text
2929
Debug > Start Without Debugging
3030
```
3131

samples/Eftdb.Samples.CodeFirst/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,4 +76,3 @@ Connection string settings should match the configuration in your `docker-compos
7676

7777
- [Entity Framework Core Documentation](https://learn.microsoft.com/en-us/ef/core/)
7878
- [TimescaleDB Documentation](https://docs.timescale.com/)
79-

samples/Eftdb.Samples.DatabaseFirst/README.md

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,4 +64,3 @@ CmdScale.EntityFrameworkCore.TimescaleDB.Example.DataAccess.DbFirst/
6464

6565
- [Entity Framework Core Documentation](https://learn.microsoft.com/en-us/ef/core/)
6666
- [TimescaleDB Documentation](https://docs.timescale.com/)
67-

tests/Eftdb.Tests/STRYKER_README.md

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,8 @@ dotnet stryker --mutate "**/HypertableDiffer.cs"
3232
### 3. View Results
3333

3434
After completion, the HTML report will be generated in:
35-
```
35+
36+
```text
3637
StrykerOutput/reports/mutation-report.html
3738
```
3839

@@ -45,16 +46,19 @@ The `stryker-config.json` file is optimized for this project:
4546
### Key Settings
4647

4748
- **Projects Mutated:**
49+
4850
- `CmdScale.EntityFrameworkCore.TimescaleDB` (main library)
4951
- `CmdScale.EntityFrameworkCore.TimescaleDB.Design` (design-time library)
5052

5153
- **Test Project:**
54+
5255
- `CmdScale.EntityFrameworkCore.TimescaleDB.Tests`
5356
- **Excludes:** `CmdScale.EntityFrameworkCore.TimescaleDB.FunctionalTests`
5457

5558
- **Concurrency:** 8 parallel processes (adjust based on CPU cores)
5659

5760
- **Thresholds:**
61+
5862
- **High:** 80% (green) - Excellent mutation score
5963
- **Low:** 60% (orange) - Needs improvement
6064
- **Break:** 50% (red) - Build fails if below this
@@ -68,6 +72,7 @@ The `stryker-config.json` file is optimized for this project:
6872
### Files Excluded from Mutation
6973

7074
The following are automatically excluded:
75+
7176
- `*.Designer.cs` files
7277
- `obj/` and `bin/` directories
7378
- `Migrations/` directories
@@ -82,7 +87,7 @@ The following are automatically excluded:
8287

8388
### Mutation Score
8489

85-
```
90+
```text
8691
Mutation Score = (Killed Mutations / Total Mutations) × 100%
8792
```
8893

@@ -93,7 +98,7 @@ Mutation Score = (Killed Mutations / Total Mutations) × 100%
9398

9499
### Example Output
95100

96-
```
101+
```text
97102
All files | 87.5% | 350/400 | 350 | 40 | 10 | 0
98103
├── Differs | 92.3% | 120/130 | 120 | 8 | 2 | 0
99104
├── Generators | 85.7% | 180/210 | 180 | 25 | 5 | 0
@@ -105,24 +110,29 @@ All files | 87.5% | 350/400 | 350 | 40 | 10 | 0
105110
### Speed Up Mutation Testing
106111

107112
1. **Use `--since` flag:**
113+
108114
```bash
109115
dotnet stryker --since
110116
```
117+
111118
Only mutates files changed since last commit.
112119

113120
2. **Increase concurrency:**
121+
114122
```bash
115123
dotnet stryker --concurrency 16
116124
```
117125

118126
3. **Use baseline (after first run):**
127+
119128
```json
120129
"baseline": {
121130
"enabled": true
122131
}
123132
```
124133

125134
4. **Target specific files:**
135+
126136
```bash
127137
dotnet stryker --mutate "**/Differs/**"
128138
```
@@ -144,27 +154,31 @@ If a file has a low mutation score (<60%), it usually means:
144154
### Issue: Tests are too slow
145155

146156
**Solution:** Increase `additional-timeout` in config:
157+
147158
```json
148159
"additional-timeout": 20000
149160
```
150161

151162
### Issue: Too many mutations to process
152163

153164
**Solution:** Use `--since` or target specific files:
165+
154166
```bash
155167
dotnet stryker --since --mutate "**/Differs/**"
156168
```
157169

158170
### Issue: False positives on string mutations
159171

160172
**Solution:** Already configured to ignore string mutations:
173+
161174
```json
162175
"ignore-mutations": ["string"]
163176
```
164177

165178
### Issue: Integration tests timing out
166179

167180
**Solution:** Already excluded via:
181+
168182
```json
169183
"test-case-filter": "Category!=Integration"
170184
```

0 commit comments

Comments
 (0)