Welcome to our weekly log for the Supabase .NET SDK 🎉
Following the monorepo migration, I started working towards the new major v8.0.0:
- Upgraded all packaged to
netstandard2.1 - Enabled lockstep versioning to v8.0.0
- Reworked the full package management, to guarantee uniform dependencies
- Broader improvements on code styling, GitHub Actions, and repository structure
- Migrated from Newtonsoft.Json to System.Text.Json for all packages
- Started writing a proper migration guide for v8.0.0 (WIP)
If you want to stay tuned with what's coming in v8.0.0, have a look at this PR.
Priori to the System.Text.Json migration, I implemented a full suite of approval tests to guarantee that serialization didn't change. The codebase didn't have any, and we can't tackle such a migration without a safety net. If you wonder what Approval Testing is, just le me know. TLDR: Tests create a snapshot, and they keep getting evaluated against that snapshot. It guarantees models and queries keep producing the same output 😉
On top of all that, I created a proper quality gate for the SDK. It is executed by GitHub Actions and potentially local agents. As it's a script, it is deterministic! 🎉
It guarantees that things do not get worse (aka. stay stale or get better):
- All tests (Unit/Contract, Approval, E2E)
- Modified code must comply with format/style/naming guidelines specified in
.editorconfig - Number of warnings cannot increase (goal is to get to zero and enable
TreatWarningsAsErrorssolution-wide) - No vulnerabilities on dependencies
From now on, this will be a hard requirement for all contributions, including mine. You can picture this as enforcing the "boyscout rule" to the whole codebase.
Stay tuned for more.
Have a great day, and keep coding!
Top comments (0)