Create a basic structure guide

This commit is contained in:
lukas0008 2024-08-21 16:30:38 +02:00
parent e6f0e126ca
commit e23587b698
2 changed files with 21 additions and 0 deletions

View File

@ -25,6 +25,10 @@ There are several ways you can contribute to Pumpkin:
Ensure your code adheres to the project's coding style guidelines (if any). Ensure your code adheres to the project's coding style guidelines (if any).
Write clear and concise commit messages that describe your changes. Write clear and concise commit messages that describe your changes.
### Project Structure
Before contributing, it would be helpful to get to know the project structure, for further information, visit [STRUCTURE.md](STRUCTURE.md)
### Additional Information ### Additional Information
We encourage you to comment on existing issues and pull requests to share your thoughts and provide feedback. We encourage you to comment on existing issues and pull requests to share your thoughts and provide feedback.

17
STRUCTURE.md Normal file
View File

@ -0,0 +1,17 @@
# Project Structure
## Overview
Pumpkin is split into multiple crates, thus having a set project structure between contributors is essential.
## Pumpkin-Core
The core crate has some special rules that only apply to it:
- It may not depend on any other pumpkin crate
- There may not be any files directly under src/, except for the mod.rs file (this is to help with organisation)
## Other crate rules
- [`pumpkin-protocol`](/pumpkin-protocol/) - contains definitions for packet types **and** their serialization (be it through serde, or manually implementing `ClientPacket`/`ServerPacket`), only the `pumpkin` crate may depend on this
- `pumpkin-macros` - similarly to `pumpkin-core`, it may not depend on any other pumpkin crate