mirror of
https://github.com/k1tbyte/Wand-Enhancer.git
synced 2026-08-28 17:01:04 +00:00
13759b1db6
- 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
129 lines
3.7 KiB
Markdown
129 lines
3.7 KiB
Markdown
# 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](#development-environment-setup)
|
|
- [Bug Reports](#bug-reports)
|
|
- [Feature Suggestions](#feature-suggestions)
|
|
- [Creating a Pull Request](#creating-a-pull-request)
|
|
- [Release Process](#release-process)
|
|
- [Code Style](#code-style)
|
|
- [Testing](#testing)
|
|
- [License](#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
|
|
|
|
1. Clone the repository:
|
|
```
|
|
git clone https://github.com/k1tbyte/Wand-Enhancer.git
|
|
```
|
|
|
|
2. Open the solution `Wand-Enhancer.sln` in Visual Studio or JetBrains Rider.
|
|
|
|
3. Restore NuGet packages.
|
|
|
|
4. 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
|
|
|
|
1. Fork the repository.
|
|
2. Create a branch with a descriptive name:
|
|
```
|
|
git checkout -b feature/feature-name
|
|
```
|
|
or
|
|
```
|
|
git checkout -b fix/fix-name
|
|
```
|
|
|
|
3. Make the necessary changes and commit with clear, descriptive messages.
|
|
|
|
4. Ensure your code follows the project's style.
|
|
|
|
5. Push the branch to your fork:
|
|
```
|
|
git push origin your-branch-name
|
|
```
|
|
|
|
6. Create a Pull Request to the main repository.
|
|
|
|
7. In the Pull Request description, explain the changes made and why they're necessary.
|
|
|
|
## Release Process
|
|
|
|
1. Update `WandEnhancer/Properties/AssemblyInfo.cs`.
|
|
2. Add a new top section with the same version to `CHANGELOG.md`.
|
|
3. Configure local hooks once:
|
|
```
|
|
git config core.hooksPath .githooks
|
|
```
|
|
4. Commit and push the version/changelog changes.
|
|
5. 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
|
|
```
|
|
6. 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:
|
|
|
|
1. Your code compiles without errors
|
|
2. You've manually tested the functionality
|
|
3. The patch works with the current version of WeMod
|
|
4. Changes don't break existing functionality
|
|
|
|
## License
|
|
|
|
By contributing, you agree that your contributions will be licensed under the [Apache License 2.0](LICENSE.md).
|
|
|
|
---
|
|
|
|
Thank you for contributing to the WandEnhancer project!
|