Skip to content

Conversation

@Archmonger
Copy link
Owner

@Archmonger Archmonger commented Aug 17, 2025

Description

This PR adds full Windows compatibility to the django-dbbackup package by implementing comprehensive cross-platform support across the test suite and core functionality.

  • Replaces hardcoded Unix paths (/tmp) with repository-local temporary directories for better cross-platform compatibility
  • Adds GPG availability detection and conditional test skipping to handle environments where GPG is not installed
  • Implements Windows-specific fixes for SQLite backup temporary file handling to resolve file locking issues

Checklist

Please update this checklist as you complete each item:

  • Tests have been developed for bug fixes or new functionality.
  • The changelog has been updated, if necessary.
  • Documentation has been updated, if necessary.
  • GitHub Issues closed by this PR have been linked.

By submitting this pull request I agree that all contributions comply with this project's open source license(s).

@Archmonger Archmonger changed the title Windows-support Full Windows support Aug 17, 2025
@Archmonger Archmonger requested a review from Copilot August 17, 2025 08:31
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds full Windows compatibility to the django-dbbackup package by implementing comprehensive cross-platform support across the test suite and core functionality.

  • Replaces hardcoded Unix paths (/tmp) with repository-local temporary directories for better cross-platform compatibility
  • Adds GPG availability detection and conditional test skipping to handle environments where GPG is not installed
  • Implements Windows-specific fixes for SQLite backup temporary file handling to resolve file locking issues

Reviewed Changes

Copilot reviewed 18 out of 19 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
tests/utils.py Updates TEST_DATABASE path to use repository-local tmp directory instead of /tmp
tests/test_utils.py Adds GPG availability detection and conditional test skipping for encryption tests
tests/test_storage.py Changes storage location from /tmp to tmp for cross-platform compatibility
tests/settings.py Replaces system temporary directories with repository-local tmp directory
tests/functional/test_commands.py Adds GPG availability checks and conditional test skipping
tests/commands/test_mediabackup.py Implements GPG availability detection for encryption tests
tests/commands/test_dbrestore.py Adds GPG availability checks for decryption tests
tests/commands/test_dbbackup.py Updates file paths to use repository-local tmp directory
tests/commands/test_base.py Changes test file paths from /tmp to repository-local tmp directory
pyproject.toml Updates functional test environment to use relative paths instead of /tmp
docs/src/configuration.md Adds Windows-specific documentation for GPG requirements
docs/src/commands.md Updates example output paths to reflect new temporary directory structure
dbbackup/db/sqlite.py Implements Windows-compatible SQLite backup with proper temporary file handling
dbbackup/db/base.py Adds Windows compatibility for command execution with builtin POSIX utility shims
CHANGELOG.md Documents Windows compatibility improvements and SQLite fixes
.github/workflows/ci.yml Extends CI matrix to include Windows testing
.github/copilot-instructions.md Updates development instructions to reflect new tmp directory structure
.editorconfig Adds editor configuration for consistent formatting across platforms
@Archmonger Archmonger marked this pull request as ready for review August 17, 2025 08:33
@Archmonger Archmonger merged commit 61f1edf into master Aug 17, 2025
19 checks passed
@Archmonger Archmonger deleted the windows-support branch August 17, 2025 08:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants