|
1 | 1 | Purpose & context |
2 | | -Kushal is developing a cross-platform desktop application called "MyDesktopApplication" using Avalonia UI and .NET 10 on Fedora Linux. The project aims to be production-ready with modern development practices, supporting multiple platforms including Windows, Linux, macOS, and Android. Success is measured by having a robust, automated development environment with comprehensive CI/CD pipelines and clean architecture patterns. |
3 | | -Key requirements include using the latest .NET technologies (SLNX solution format, Central Package Management), implementing clean architecture with separate Core, Infrastructure, Shared, and platform-specific projects, and maintaining strict licensing compliance - only accepting MIT, Apache-2.0, BSD, or Public Domain licensed dependencies. The project uses Entity Framework Core with SQLite and PostgreSQL support, implements Repository pattern with Unit of Work, and includes comprehensive testing strategies. |
| 2 | +Kushal is developing "MyDesktopApplication," a cross-platform desktop application using Avalonia UI and .NET 10 on Fedora Linux. The project has evolved from a basic counter demo into a comprehensive Country Quiz game featuring statistical comparisons between countries across multiple metrics (population, GDP, area, etc.). The application targets multiple platforms including Windows, Linux, macOS, and Android, with emphasis on responsive design that works from small Android phones to large tablets. |
| 3 | +Key architectural principles include Clean Architecture patterns with separate Core, Infrastructure, Shared, and platform-specific projects, strict adherence to completely free and open-source dependencies (MIT, Apache-2.0, BSD, or Public Domain licenses only), modern .NET technologies including SLNX solution format and Central Package Management, and a "One Team, One Build" philosophy that eliminates development silos between platform teams. |
| 4 | +The project uses Entity Framework Core with SQLite for local storage and PostgreSQL support, implements Repository pattern with Unit of Work, and maintains comprehensive testing strategies across unit, integration, and UI tests. Data persistence is crucial for maintaining game state, scores, and user progress across application sessions. |
4 | 5 | Current state |
5 | | -Kushal has successfully progressed from initial setup failures to a working Android development environment through systematic troubleshooting. Recent achievements include resolving Java configuration issues on Fedora (properly configuring Java 21 JDK instead of Java 25 JRE), fixing GitHub Actions CI failures by restructuring workflows to separate desktop-only builds from full platform builds, installing the official Android SDK with proper environment configuration, and resolving C# compilation errors including namespace conflicts and inheritance issues in Android project files. |
6 | | -The development environment now supports building for all target platforms with three distinct CI workflows: desktop-only builds for every push/PR, pre-releases with all platforms, and tagged releases. |
7 | | -Approach & patterns |
8 | | -Kushal strongly prefers automation through shell scripts over manual file editing, consistently requesting scripted solutions for setup, dependency management, Android SDK configuration, and workflow creation. This preference stems from valuing reproducible, automated development processes that minimize manual copy-pasting and reduce setup errors. |
9 | | -The development approach follows systematic troubleshooting methodology, addressing issues in logical sequence (Java configuration → CI workflows → SDK installation → compilation errors). Kushal provides detailed feedback and corrections throughout the process, demonstrating thorough testing of proposed solutions and clear communication of platform-specific issues. |
| 6 | +The application is actively being debugged and refined through systematic build error resolution. Recent focus has been on harmonizing property naming conventions throughout the codebase (standardizing on names like "CurrentScore" vs "Score" and "Gdp" vs "GdpTotal"), implementing missing extension methods for QuestionType enum to handle country data formatting, and resolving Entity Framework configuration issues including proper DbContext setup and design-time factory implementation. |
| 7 | +Current technical stack includes Avalonia UI for cross-platform UI, Entity Framework Core with SQLite, modern testing frameworks (Shouldly instead of FluentAssertions, NSubstitute instead of Moq), and GitHub Actions CI/CD pipelines. The Android development environment has been successfully configured on Fedora Linux with proper Java JDK setup and Android SDK installation. |
10 | 8 | Key learnings & principles |
11 | | -Several important technical insights have emerged: Fedora's android-tools package only includes adb and fastboot, not the full Android SDK required for building applications; Java configuration on Linux requires careful attention to JDK vs JRE installations and proper PATH configuration; GitHub Actions workflows need careful separation between desktop-only and full platform builds to avoid unnecessary dependency installation; and cross-platform .NET development requires attention to namespace conflicts and platform-specific inheritance patterns. |
12 | | -The principle of strict licensing compliance has proven non-negotiable, with packages being rejected solely based on commercial licensing requirements regardless of technical merit. |
| 9 | +Shell script automation is strongly preferred over manual file editing for reproducibility and efficiency. Kushal consistently requests comprehensive, executable scripts that can be run multiple times safely (idempotent) rather than step-by-step manual instructions. |
| 10 | +Strict licensing discipline is maintained - any packages with commercial licensing restrictions or paid tiers are immediately replaced with free alternatives. This includes replacing FluentAssertions with Shouldly, Moq with NSubstitute, and avoiding any dependencies that could create future licensing complications. |
| 11 | +Build issues require surgical, targeted fixes rather than comprehensive file rewrites to avoid introducing new problems. When fixing compilation errors, it's crucial to preserve existing functionality and XAML bindings rather than accidentally removing essential properties or methods. |
| 12 | +Platform-specific build problems (particularly Android aapt2 daemon deadlocks) can be resolved by creating separate solution files for daily development while maintaining full platform builds for CI/CD scenarios. |
| 13 | +Approach & patterns |
| 14 | +Development follows a systematic debugging methodology: analyze build errors comprehensively, create targeted fix scripts that address root causes rather than symptoms, verify fixes through build and test execution, and maintain idempotent scripts that can be safely re-run. |
| 15 | +Project structure consolidation is regularly performed to remove redundant shell scripts and duplicate solution files that accumulate during development iterations. This includes maintaining a single unified solution file and standardizing on dotnet build and dotnet test commands. |
| 16 | +CI/CD workflows are structured into three distinct pipelines: ci.yml for desktop-only builds on every push/PR, build.yml for creating development pre-releases with all platforms, and release.yml for stable releases on git tags. This separation allows fast feedback loops while maintaining comprehensive platform coverage. |
| 17 | +Error resolution follows a pattern of killing stuck build processes, cleaning build artifacts, applying targeted fixes, restoring packages, and verifying through compilation and testing. |
13 | 18 | Tools & resources |
14 | | -The development stack centers on .NET 10 with Avalonia UI framework, Entity Framework Core with SQLite and PostgreSQL databases, and comprehensive testing frameworks for unit, integration, and UI testing. The environment runs on Fedora Linux with official Android SDK command-line tools, proper Java 21 JDK configuration, and GitHub Actions for CI/CD across Windows, Linux, macOS, and Android platforms. |
15 | | -Development automation relies heavily on custom shell scripts for project setup, dependency management, and environment configuration, supporting the preference for reproducible, scripted workflows over manual processes.Tell Claude what to remember or forget... |
| 19 | +Development environment: Fedora Linux with .NET 10, Java JDK properly configured for Android development, Android SDK with command-line tools for cross-platform builds. |
| 20 | +Key technologies: Avalonia UI framework, Entity Framework Core with SQLite, SLNX solution format with Central Package Management, GitHub Actions for CI/CD automation. |
| 21 | +Testing stack: Shouldly for assertions, NSubstitute for mocking, comprehensive unit and integration test coverage with xunit framework. |
| 22 | +Database tooling: EF Core migrations with design-time factory pattern, support for both SQLite (local development) and PostgreSQL (production scenarios). |
| 23 | +The project maintains real-world country data from sources like World Bank and UN statistics for the quiz functionality, with 50+ countries including comprehensive demographic and economic indicators. |
0 commit comments