Extend the library of shapes by creating an issue or pull request! Share your idea for a shape or feature you would like to see added to the library.
If you are not sure about something, feel free to ask in the discussion of the issue. We are happy to help!
- Check for already existing issues if you have a feature request.
- Create new issue for any bugs or feature requests.
- Fork the repository.
- Create a new branch from
master
for each issue. - Make your changes.
- Pull in the
master
branch into your branch and resolve any merge conflicts. - Open a pull request into
master
branch. - Link the pull request by mentioning the issue number
#<issue_number>
in the description or any other way. - Set reviewer on pull request (or mention people in comments).
- Discuss any problems or suggestions.
- Make changes if necessary.
- Congratulations! You have contributed to ProtoShape!
To keep the code clean and readable, we are using coding conventions and rules. Make sure to follow them where possible.
The library is written in GDScript and (mostly) follows the GDScript style guide. Also use static typing where possible.
Document your code with comments where necessary, follow coding convention rules.
For each larger feature, like a new and complex shape, make sure to write a proper, but not too extensive documentation using Markdown
. It should be understandable for someone who is not familiar with the project.
Try to use the template from Make a README and place it in the proper folder.
If you see a document referencing related features or issues, make sure to link them. Like make a change in the main README.md
to list new shapes you added.
Including diagrams/sketches and assets is not necessary, but can be helpful to understand the feature.
For new shapes or issues, a video/tutorial of how to use the shape can be very helpful and intuitive. You can record the issue or a prototype of your feature and include it in the documentation, saved in the locally created assets
folder.
If you want to include diagrams or sketches, you can use Excalidraw and export them as SVG
files to the locally created assets
folder. You can save the .excalidraw
files in the assets
folder to modify later if needed. You can also use other tools.