Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions ROADMAP.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
- **M2**: ✅ completed.
- **M3**: ✅ completed (Online DDL/IPOD + provider enablement).
- **M4–M5**: ✅ completed.

- **M6**: ✅ completed (GA readiness sign-off).

---
Expand Down
153 changes: 153 additions & 0 deletions docs/release/QUICK-REFERENCE-v0.1.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,153 @@
# xBase v0.1.0 Quick Reference Card

## Installation

### NuGet Packages
```bash
dotnet add package XBase.Core --version 1.0.0
dotnet add package XBase.Data --version 1.0.0
dotnet add package XBase.EFCore --version 1.0.0
dotnet tool install --global XBase.Tools --version 1.0.0
```

### CLI Tool Downloads
- **Windows**: [xbase-win-x64.zip](https://github.com/luckydizzier/xBase/releases/download/v0.1.0/xbase-win-x64.zip)
- **Linux**: [xbase-linux-x64.tar.gz](https://github.com/luckydizzier/xBase/releases/download/v0.1.0/xbase-linux-x64.tar.gz)
- **macOS**: [xbase-osx-arm64.tar.gz](https://github.com/luckydizzier/xBase/releases/download/v0.1.0/xbase-osx-arm64.tar.gz)

## Basic Usage

### ADO.NET Provider
```csharp
using XBase.Data;

var connStr = "Data Source=/path/to/database;Journaling=true";
using var connection = new XBaseConnection(connStr);
connection.Open();

using var command = connection.CreateCommand();
command.CommandText = "SELECT * FROM CUSTOMERS WHERE CITY = @city";
command.Parameters.Add(new XBaseParameter("@city", "Seattle"));

using var reader = command.ExecuteReader();
while (reader.Read())
{
Console.WriteLine($"{reader["NAME"]} - {reader["EMAIL"]}");
}
```

### EF Core Provider
```csharp
using Microsoft.EntityFrameworkCore;
using XBase.EFCore;

public class MyDbContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder options)
{
options.UseXBase("Data Source=/path/to/database");
}

public DbSet<Customer> Customers { get; set; }
}

// Usage
using var context = new MyDbContext();
var seattleCustomers = context.Customers
.Where(c => c.City == "Seattle")
.ToList();
```

### CLI Tool Commands
```bash
# Display table metadata
xbase dbfinfo /path/to/customers.dbf

# Export to CSV
xbase dbfdump /path/to/customers.dbf --format csv --output data.csv

# Compact deleted records
xbase dbfpack /path/to/customers.dbf

# Rebuild indexes
xbase dbfreindex /path/to/database customers

# Convert code page
xbase dbfconvert /path/to/source.dbf /path/to/output.dbf --codepage cp850

# Online DDL operations
xbase ddl apply /path/to/database customers --ddl schema.ddl
xbase ddl checkpoint /path/to/database customers
xbase ddl pack /path/to/database customers
xbase ddl reindex /path/to/database customers
```

## Supported Formats

| Format | Version | Status |
|--------|---------|--------|
| DBF | dBASE III+ (0x03) | ✅ Full support |
| DBF | dBASE IV (0x04, 0x8B) | ✅ Full support |
| DBT | dBASE III memo | ✅ Full support |
| DBT | dBASE IV memo | ✅ Full support |
| NTX | Clipper index | ✅ Navigation supported |
| MDX | dBASE IV compound | ✅ Navigation supported |
| FPT | FoxPro memo | 🔜 Phase B |
| CDX | FoxPro compound | 🔜 Phase B |

## Configuration Options

### Connection String Properties
| Property | Default | Description |
|----------|---------|-------------|
| `Data Source` | (required) | Path to database directory or DBF file |
| `Journaling` | `false` | Enable WAL journaling for transactions |
| `Lock Mode` | `File` | Locking mode: `File`, `Record`, `None` |
| `Code Page` | `CP437` | Default character encoding |
| `Read Only` | `false` | Open in read-only mode |

### Example Connection Strings
```
Data Source=C:\databases\mydb
Data Source=/var/lib/xbase/mydb;Journaling=true;Lock Mode=Record
Data Source=/path/to/table.dbf;Read Only=true;Code Page=CP850
```

## Documentation Links

- **Full Release Notes**: [RELEASE-NOTES-v0.1.0.md](RELEASE-NOTES-v0.1.0.md)
- **Release Process**: [RELEASE-PROCESS-GUIDE.md](RELEASE-PROCESS-GUIDE.md)
- **Architecture**: [../../architecture.md](../../architecture.md)
- **Requirements**: [../../requirements.md](../../requirements.md)
- **Transactions**: [../../TRANSACTIONS.md](../../TRANSACTIONS.md)
- **Code Pages**: [../../CODEPAGES.md](../../CODEPAGES.md)
- **Indexes**: [../../INDEXES.md](../../INDEXES.md)
- **Configuration**: [../configuration.md](../configuration.md)
- **Cookbooks**: [../cookbooks/](../cookbooks/)

## Build Information

- **Release Date**: 2025-10-01
- **Target Framework**: .NET 8.0 LTS
- **Build Configuration**: Release
- **Tests Passed**: 33/33 (100%)
- **Code Coverage**: Available in test results

## Checksums (SHA256)

```
5208a3c4cf8f8de053046039502b4a8953aaf9a28d7330c0f3ad3e9671384c36 xbase-win-x64.zip
32b16665d90e68049760499ba6e338ead6ce2596714993489f1450a78b536693 xbase-linux-x64.tar.gz
98e7f35d94ce46d9c5a7787500349fcfd22490101041bfa346de18ff64fefb5a xbase-osx-arm64.tar.gz
```

## Support & Contributing

- **GitHub**: https://github.com/luckydizzier/xBase
- **Issues**: https://github.com/luckydizzier/xBase/issues
- **License**: See [LICENSE](../../LICENSE)

---

**Version**: 0.1.0 (Phase A GA)
**Last Updated**: 2025-10-01
208 changes: 208 additions & 0 deletions docs/release/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,208 @@
# Release Documentation Index — v0.1.0

This directory contains all documentation related to the xBase v0.1.0 (Phase A GA) release.

## Release Documents

### [RELEASE-NOTES-v0.1.0.md](RELEASE-NOTES-v0.1.0.md)
**Comprehensive release notes** covering:
- Overview and key features
- Completed milestones (M1-M6)
- NuGet packages and CLI tools
- Installation instructions
- Breaking changes (none for initial release)
- Known issues
- Documentation links
- What's next (Phase B preview)

**Target Audience:** All users, developers, and stakeholders

---

### [QUICK-REFERENCE-v0.1.0.md](QUICK-REFERENCE-v0.1.0.md)
**Quick reference card** with:
- Installation commands
- Basic usage examples (ADO.NET, EF Core, CLI)
- Supported formats matrix
- Configuration options
- Connection string reference
- SHA256 checksums
- Common commands cheat sheet

**Target Audience:** Developers getting started with xBase

---

### [RELEASE-PROCESS-GUIDE.md](RELEASE-PROCESS-GUIDE.md)
**Step-by-step publication guide** including:
- Current status summary
- Package signing instructions
- Git tagging procedure
- NuGet.org publication steps
- GitHub Release creation (CLI and web)
- Package verification steps
- Post-release activities
- Troubleshooting common issues

**Target Audience:** Release managers and maintainers

---

### [phase-a-ga-checklist.md](phase-a-ga-checklist.md)
**Official GA release checklist** tracking:
- Pre-flight verification
- Build and validation steps
- Packaging and signing tasks
- Release artifact preparation
- Publication steps
- Post-release activities

**Target Audience:** Release team and project managers

---

### [2025-10-01-validation-report.md](2025-10-01-validation-report.md)
**Validation audit report** documenting:
- Vertical validation (per-project build/test)
- Horizontal validation (solution-wide)
- Packaging verification
- SDK version and environment details

**Target Audience:** QA team and compliance auditors

---

## Artifacts

Release artifacts are **not committed** to version control. They are generated during the release process and stored locally in the `artifacts/` directory (gitignored).

### Generated Artifacts

#### NuGet Packages (`artifacts/nuget/`)
- `XBase.Abstractions.1.0.0.nupkg` (12K)
- `XBase.Core.1.0.0.nupkg` (43K)
- `XBase.Data.1.0.0.nupkg` (25K)
- `XBase.Diagnostics.1.0.0.nupkg` (4.1K)
- `XBase.EFCore.1.0.0.nupkg` (8.1K)
- `XBase.Expressions.1.0.0.nupkg` (4.2K)
- `XBase.Tools.1.0.0.nupkg` (23K)

#### CLI Binaries (`artifacts/cli-binaries/`)
- `xbase-win-x64.zip` (29 MB) — Windows 64-bit
- `xbase-linux-x64.tar.gz` (29 MB) — Linux 64-bit
- `xbase-osx-arm64.tar.gz` (27 MB) — macOS ARM64
- `checksums.txt` — SHA256 checksums for binaries
- Platform-specific executables with debug symbols

#### Release Summary (`artifacts/`)
- `RELEASE-v0.1.0-SUMMARY.md` — Build validation and artifact summary

---

## Build Commands

### Reproduce Artifacts Locally

```bash
# 1. Clean and restore
dotnet clean xBase.sln
dotnet restore xBase.sln

# 2. Build and test
dotnet build xBase.sln -c Release
dotnet test xBase.sln -c Release --collect:"XPlat Code Coverage"
dotnet format --verify-no-changes

# 3. Generate NuGet packages
dotnet pack xBase.sln -c Release -o artifacts/nuget /p:ContinuousIntegrationBuild=true

# 4. Build CLI binaries
dotnet publish src/XBase.Tools/XBase.Tools.csproj -c Release \
-r win-x64 -p:PublishSingleFile=true -p:SelfContained=true \
-o artifacts/cli-binaries/win-x64

dotnet publish src/XBase.Tools/XBase.Tools.csproj -c Release \
-r linux-x64 -p:PublishSingleFile=true -p:SelfContained=true \
-o artifacts/cli-binaries/linux-x64

dotnet publish src/XBase.Tools/XBase.Tools.csproj -c Release \
-r osx-arm64 -p:PublishSingleFile=true -p:SelfContained=true \
-o artifacts/cli-binaries/osx-arm64

# 5. Create archives and checksums
cd artifacts/cli-binaries
zip -j xbase-win-x64.zip win-x64/XBase.Tools.exe
tar -czf xbase-linux-x64.tar.gz -C linux-x64 XBase.Tools
tar -czf xbase-osx-arm64.tar.gz -C osx-arm64 XBase.Tools
sha256sum xbase-*.zip xbase-*.tar.gz > checksums.txt
```

---

## Quality Metrics

### Build Status
- **Build**: ✅ Success (Release configuration)
- **Tests**: ✅ 33/33 passed (100%)
- **Code Formatting**: ✅ Verified with dotnet format
- **Test Duration**: 24.2 seconds

### Coverage
Code coverage reports available in:
```
tests/XBase.*.Tests/TestResults/*/coverage.cobertura.xml
```

### Test Projects
- XBase.Abstractions.Tests
- XBase.Core.Tests
- XBase.Data.Tests
- XBase.Diagnostics.Tests
- XBase.EFCore.Tests
- XBase.Expressions.Tests
- XBase.Tools.Tests

---

## Publication Status

### ✅ Completed
- [x] Code formatted and validated
- [x] All tests passing
- [x] NuGet packages generated
- [x] CLI binaries built for all platforms
- [x] Checksums generated
- [x] Release documentation complete
- [x] Checklist updated
- [x] ROADMAP and tasks.md updated (M6 complete)

### ⏳ Pending
- [ ] Sign NuGet packages (requires organization certificate)
- [ ] Create Git tag `v0.1.0`
- [ ] Publish packages to NuGet.org
- [ ] Create GitHub Release
- [ ] Announce release

---

## Key Links

- **Repository**: https://github.com/luckydizzier/xBase
- **Release Page**: https://github.com/luckydizzier/xBase/releases/tag/v0.1.0
- **NuGet Packages**: https://www.nuget.org/packages?q=xbase
- **Documentation**: https://github.com/luckydizzier/xBase/tree/main/docs

---

## Version Information

- **Version**: 0.1.0 (Phase A GA)
- **Release Date**: 2025-10-01
- **Target Framework**: .NET 8.0 LTS
- **Phase**: A (dBASE III+/IV support)
- **Next Phase**: B (FoxPro 2.x support)

---

**Last Updated**: 2025-10-01
**Maintained By**: xBase Release Team
Loading