- reduce ASAR IO overhead with streamed archive reads, buffered copies, faster relative-path handling and placeholder integrity records - fix in-place app.asar.unpacked packing/extraction self-copy cases that caused locked-file failures - tighten JS patch discovery with candidate bundle filters and search hints - require prebuilt remote-panel dist artifacts and clean up embedded bridge/script packaging - add unified build entrypoints for PowerShell, cmd and bash and move native CMake output under .tmp - add release metadata validation, changelog section extraction, pre-commit hook and GitHub Actions validation/release pipelines - make CHANGELOG the source of truth for release notes and document the tag-driven release flow - add updater release notes UI with latest/full changelog loading and localize the new update strings - modularize bridge renderer scripts, add installed apps and game status sync, and support remote launch/stop commands - centralize bridge protocol, IPC and WebSocket constants and improve LAN IP selection for QR pairing - refactor remote panel controls/state enums, persist accent color, polish library/session UI and refresh assets
3.7 KiB
Contributing to WandEnhancer
Thank you for your interest in the WandEnhancer project! This document provides guidelines for contributing to the project.
Table of Contents
- Development Environment Setup
- Bug Reports
- Feature Suggestions
- Creating a Pull Request
- Release Process
- Code Style
- Testing
- License
Code of Conduct
By participating in this project, you commit to maintaining respectful interactions with all community members. Any form of insults, harassment, or other unacceptable behavior will not be tolerated.
Project Structure
The project consists of the following main components:
- WandEnhancer - Main project containing the enhancement logic and user interface
- AsarSharp - Library for working with ASAR archives (used for unpacking and modifying WeMod files)
- Core - Core of the enhancement flow, including static and dynamic modifications
- Models - Data models used in the project
- View - User interface components
Development Environment Setup
-
Clone the repository:
git clone https://github.com/k1tbyte/Wand-Enhancer.git -
Open the solution
Wand-Enhancer.slnin Visual Studio or JetBrains Rider. -
Restore NuGet packages.
-
Build the project.
Bug Reports
If you've found a bug, please create an Issue with a detailed description:
- WandEnhancer version
- WeMod version where the problem occurred
- Detailed steps to reproduce the bug
- Expected and actual behavior
- Screenshots or error logs (if available)
Feature Suggestions
Suggestions for new features or improvements are welcome! Create an Issue describing your idea, explaining:
- What problem the proposed improvement solves
- How you envision implementing this feature
- Potential alternatives you've considered
Creating a Pull Request
-
Fork the repository.
-
Create a branch with a descriptive name:
git checkout -b feature/feature-nameor
git checkout -b fix/fix-name -
Make the necessary changes and commit with clear, descriptive messages.
-
Ensure your code follows the project's style.
-
Push the branch to your fork:
git push origin your-branch-name -
Create a Pull Request to the main repository.
-
In the Pull Request description, explain the changes made and why they're necessary.
Release Process
- Update
WandEnhancer/Properties/AssemblyInfo.cs. - Add a new top section with the same version to
CHANGELOG.md. - Configure local hooks once:
git config core.hooksPath .githooks - Commit and push the version/changelog changes.
- Create and push a tag matching the same version exactly, for example:
git tag 1.0.8.0 git push origin 1.0.8.0 - GitHub Actions will validate the version, build the project, extract the matching changelog section, and publish the release automatically.
Code Style
-
Use C# naming conventions:
- PascalCase for class, method, and property names
- camelCase for local variables and parameters
- _camelCase for private fields
-
Add comments for complex code sections or patching methods
-
Follow SOLID and DRY principles
Testing
Before submitting a Pull Request, ensure that:
- Your code compiles without errors
- You've manually tested the functionality
- The patch works with the current version of WeMod
- Changes don't break existing functionality
License
By contributing, you agree that your contributions will be licensed under the Apache License 2.0.
Thank you for contributing to the WandEnhancer project!