Skip to content

Release: v0.1.0-alpha — Minimal ORM foundation#5

Draft
LeonSpors wants to merge 25 commits intomainfrom
develop
Draft

Release: v0.1.0-alpha — Minimal ORM foundation#5
LeonSpors wants to merge 25 commits intomainfrom
develop

Conversation

@LeonSpors
Copy link
Copy Markdown
Owner

📦 Release: v0.1.0

This release marks the first public version of pORM, introducing the core functionality for minimal, performance-oriented object mapping in .NET.


✅ Included in this version

  • Basic attribute-driven mapping engine
  • Foundational tests to validate entity mapping
  • First stable NuGet package release (v0.1.0)
  • Versioning defined in Directory.Build.props
  • CI workflows updated and verified (nightly + stable)
  • NuGet metadata (description, license, tags, repo)

📌 Notes

  • This version is suitable for experimental usage and early feedback.
  • Expect rapid iteration as features like LINQ-to-SQL, query composition, and CRUD support are added.

🔖 Tag: v0.1.0 (to be created after merge)

…ry.Build.props

- Removed `push` trigger from the nightly workflow to ensure it only runs on schedule (2 AM UTC).
- Reads the base <Version> value from Directory.Build.props.
- Appends a SemVer-compliant suffix: `-nightly.YYYYMMDD-<short_sha>` to create valid pre-release versions.
- Resolves NuGet pack error caused by invalid version strings that started with a hyphen.
@LeonSpors LeonSpors self-assigned this Apr 4, 2025
@LeonSpors LeonSpors marked this pull request as draft April 4, 2025 23:35
@LeonSpors LeonSpors added the release For PRs that publish or prepare a version label Apr 4, 2025
LeonSpors added 23 commits April 6, 2025 11:54
- Add MySQL provider implementation
- Add mapping engine implementation
- Add service provider extensions
- Add context manager implementation
- Add simple property caching logic
- Introduced a conditional property 'UsePackagedReferences' in project files to toggle between ProjectReference (for local development) and PackageReference (for packaging).
- Modified csproj files to use PackageReference for internal dependencies when UsePackagedReferences is true.
- Updated the nightly build workflow to pass /p:UsePackagedReferences=true during packaging, ensuring that all internal dependencies are resolved via NuGet package references.
- This strategy enables local builds with project references while ensuring that published packages have correct dependency metadata.
- Applies the same sequential packaging and versioning approach from the GitHub Packages setup to the NuGet.org release workflow.
- Ensures /p:UsePackagedReferences=true is used during packing.
- Aligns versioning, build flow, and project order to the publishing logic.
- Centralize package metadata in Directory.Build.props
- Add conditional nightly build support using 'Nightly' property
- Enable embedded PDB and source files for nightly builds only
- Remove IncludeSymbols to prevent separate .symbols.nupkg generation
- Enable SourceLink and PublishRepositoryUrl for better debug experience
- Add PackageId fallback to use project name if not explicitly set
- Added cleanup-nightlies workflow to prune old nightly NuGet packages
  - Runs daily at 04:00 UTC and on manual trigger
  - Keeps the latest 7 nightly versions per package
  - Matches versions ending with `-nightly.YYYYMMDD-<sha>`
- Renamed existing workflows to:
  - publish-nightly.yml
  - publish-stable.yml
  - cleanup-nightlies.yml
  for improved clarity and naming consistency
- Added sample xUnit tests using Moq to validate basic pORM functionality.
- Tests cover core behavior of Table<T>.AddAsync and TableCache.
- This commit is marked as "testing" to verify that our initial configuration and mocking approach work correctly before further integration.
- Added a "Usage" section that outlines how to define entities with the [Table] and [Key] attributes.
- Included examples for basic CRUD operations and advanced LINQ queries via GlobalContext.
- Inserted a disclaimer noting that context-based mode is coming soon.
- Improved formatting using proper Markdown for code blocks and sections.
- Implemented Program.cs using HostApplicationBuilder to register services.
- Added AddDatabase extension (with connection string) and registered ExampleService.
- Created ExampleService (a BackgroundService) that writes a LogEntry to the database every 30 seconds.
- Added LogEntry model with [Table] and [Key] attributes for proper mapping.
- This sample project demonstrates basic pORM usage via the global context.
- Added a comment in Program.cs that contains a sample SQL query for creating the 'Logs' table.
- This comment helps developers initialize or test the database setup manually.
- Included a new section in the README explaining how to access nightly packages via GitHub Packages.
- Provided instructions for authentication, adding a GitHub Packages source in NuGet.config, and installing a pre-release version.
- Added a disclaimer to inform users that nightly builds are experimental and intended for testing purposes.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

release For PRs that publish or prepare a version

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant