-
Notifications
You must be signed in to change notification settings - Fork 402
Final editing pass, and publish contributing guide #1605
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
alice-i-cecile
merged 89 commits into
bevyengine:main
from
TrialDragon:publish_contributing_guide
Aug 22, 2024
Merged
Changes from 87 commits
Commits
Show all changes
89 commits
Select commit
Hold shift + click to select a range
2f52f12
Make Contributing Guide visible to the site
TrialDragon cd7f8b2
Make long title text fit in the mobile menu switch
TrialDragon 73fdfc6
Rename `contributing/` and Contributing guide to `contribute/` and Co…
TrialDragon f505ca3
Reset the menu switch height
TrialDragon 3cc6bf9
Add a fifteen pixel margin to the navigation main menu
TrialDragon 385695b
Fix waving emoji in introduction
TrialDragon c2e57af
Switch out bevy organization GitHub document for website version
TrialDragon d9d3042
Add commas to clarify sentence
TrialDragon c1bfe51
Smooth out two sentences into one for readability
TrialDragon 9e127bb
Strucutrally edit "Test what you need to"
TrialDragon 787f6f5
Structurally edit "Civil discourse"
TrialDragon 5146444
Change initial reference to Bevy to the Bevy Organization
TrialDragon 0f864c1
Mechanically edit "repo" → "repository" in Introduction
TrialDragon 9b1096a
Fix how you can help redirect link
TrialDragon 98de611
De-duplicate Discord reference link
TrialDragon db6c67a
Capitalize GitHub properly in how you can help
TrialDragon d540ac4
Singularize Project Leads → Project Lead in how you can help
TrialDragon 52537de
Add commas before "but" in how you can help
TrialDragon 939fc54
Add an `a` when referring to a singular `@Maintainer` in how you can …
TrialDragon b56d4fa
Structurally edit Teaching Other in how you can help
TrialDragon 39aa154
Change Github → GitHub in reporting issues
TrialDragon 1a7f213
Mention the Bevy Website for where you can report issues
TrialDragon 948ff28
Capitalize Maintainers in reporting issues
TrialDragon 50707ec
Capitalize Subject Matter Expers in opening pull requests
TrialDragon a1ad3fa
Make global gitignore tip a callout in opening pull requests
TrialDragon 8a95560
Uppercase TOML in opening pull requests
TrialDragon bf9831d
Singularize references to the Project Lead in opening PRs
TrialDragon a8ce57e
Change repo to repository in opening pull requests
TrialDragon ed73089
Change repo to repository in rest of contributing guide
TrialDragon 4b147b4
Split up adopting pull requests into paragraphs
TrialDragon 974576d
Change Github to GitHub in Contributing Guide
TrialDragon c37bf94
Capitalize What We're Trying to Build as a title in reviewing PRs
TrialDragon 1ce8aaa
Edit "Giving feedback"'s third paragraph
TrialDragon cb65b4d
Capitalize maintainers → Maintainers in Contributing Guide
TrialDragon 71e8f02
Edit "What to review" in Reviewing Pull Requests
TrialDragon 6477112
Modify The Bevy Organization link in Introduction
TrialDragon 0fe0294
Use semi-colon over comma in first item on Writing Documentation
TrialDragon f6964e8
Change Bevy website to Bevy Website
TrialDragon 8136912
Make Contributor's Style guide summary relevant to modern Bevy Website
TrialDragon e02672e
Add a comma
TrialDragon fc7ff85
Add mention to callout alongside aside in technical section
TrialDragon a746e89
Remove outdated point for technical documentation
TrialDragon 8decfe8
Prettify the last two points of the technical documentation
TrialDragon babedd1
Capitalize first list in working groups
TrialDragon 1272d57
Add oxford comma
TrialDragon 3546a1d
Accentuate the importance of the social or mundane tasks
TrialDragon 51f4c10
Add more commas
TrialDragon ffc3f8e
Add link to the how you can help page
TrialDragon 9a9f81d
Smooth out the working group ground rules wording
TrialDragon c44db89
Change the working group phases into a numbered list
TrialDragon fdcf447
Smooth out the implement the design doc section
TrialDragon 9093ea6
Add oxford comma
TrialDragon f559491
Use more readable grammar
TrialDragon a442b2b
Capitalize Bevy Project
TrialDragon 4f59d25
Add commas
TrialDragon 8d5db79
Fix typo of an extra s on Maintainers
TrialDragon 3eb2284
Add comma
TrialDragon 328bcc1
Clarify what uncontroversial means in regards to working group ground…
TrialDragon 5e044a8
Split up explanation of SME approval into two paragraphs
TrialDragon 4b07a58
Add commas
TrialDragon 40183d0
Smooth out role rotation text
TrialDragon 9043784
Fix broken reference links
TrialDragon e08930c
Remove errant GitHub suggestion application artifacts
TrialDragon afcbf1c
Expand rc to release candidate for clarification
TrialDragon 8cb3afa
Make reference redirect to triage since it has no content in itself
TrialDragon 76fb27c
Add link to Bevy Website labels
TrialDragon d37e301
Add oxford comma
TrialDragon 78dbb50
Add commas
TrialDragon ec16012
Swap parenthesis for commas
TrialDragon 6aab8c7
Deprecate CONTRIBUTING.md
TrialDragon b8cfb6f
Add website contributing guide link to CONTRIBUTING.md
TrialDragon 5e4e0da
Change asking to pinging a Maintainer.md
TrialDragon 5cacdeb
Change unprofessional sentence to a more professional one
TrialDragon 96b391c
Change reference to Bevy Organization
TrialDragon 997e2dd
Add whitespace between the wave and a word
TrialDragon 1f9bb32
Make sentence less repetitive
TrialDragon 444c259
Merge together paragraph a bit
TrialDragon f25236c
Change Bevy Website to Bevy's website
TrialDragon 7d4be41
Revert "Add a fifteen pixel margin to the navigation main menu"
TrialDragon a9b7bb5
Remove Contribute from navigation bar
TrialDragon add0f88
Move contribute under the learn section
TrialDragon a352a1a
Use sed to replace all references to old contribute section location
TrialDragon f92feb2
Change contributing root section to be under the learn section
TrialDragon c14dd69
Apply suggestions from code review
TrialDragon 18031fb
Change link from Using GitHub Issues to Reviewing Pull Requests
TrialDragon 4b5214c
Change bevy, and bevy-website, repository mentions to use backticks
TrialDragon e17c225
Add missing `s` for possesive form of Bevy in Reporting Issues
TrialDragon 922db31
Merge branch 'main' into publish_contributing_guide
TrialDragon 8ac985e
Change Bevy Website back to Bevy's website
TrialDragon File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,199 +1,5 @@ | ||
| # Contributing | ||
|
|
||
| So, you want to help with [Bevy Website](https://bevyengine.org/)? Then this is the right place for you! Bevy is created by volunteers; if you want to help us build the next great game engine, please reach out. We need all the help we can get. | ||
| We've moved our contributing documentation! | ||
|
|
||
| If you want to help with [Bevy Engine](https://github.com/bevyengine/bevy) itself, then see the engine's [CONTRIBUTING.md](https://github.com/bevyengine/bevy/blob/main/CONTRIBUTING.md). | ||
|
|
||
| We want Bevy to be a vibrant developer community. That's actually why we chose the name; a Bevy is a group of birds, just like we are a group of game developers. Join the Bevy! | ||
|
|
||
| ## Building the website | ||
|
|
||
| The Bevy website is built using the Zola static site engine. In our experience, it is fast, flexible, and straightforward to use. | ||
|
|
||
| To check out any local changes you've made: | ||
|
|
||
| 1. [Download Zola v0.18.0](https://www.getzola.org/). | ||
| 2. Clone the Bevy Website git repo and enter that directory: | ||
| 1. `git clone https://github.com/bevyengine/bevy-website.git` | ||
| 2. `cd bevy-website` | ||
| 3. Start the Zola server with `zola serve`. | ||
|
|
||
| A local server should start and you should be able to access a local version of the website from there. | ||
|
|
||
| ## Testing changes to learning material code examples | ||
|
|
||
| The code in the learning materials (e.g., Bevy Book, Quick Start Guide, Advanced Examples, etc.) is compiled, formatted, and tested to make sure that the examples work for readers. | ||
|
|
||
| To validate your code snippets either run `validate_examples.sh` which resides in the `learning-code-examples` directory (and is the recommended way to use `learning-code-examples`), or from the root of the project run `cd learning-code-examples && cargo check --examples && cargo clippy --examples && cargo fmt --check`. | ||
|
|
||
| > [!NOTE] | ||
| > [See the `learning-code-examples` README.md for more info.](./learning-code-examples/README.md) | ||
|
|
||
| ## Learning material structure | ||
|
|
||
| As you probably noticed, our introductory learning material is split into two main sections: | ||
|
|
||
| 1. **Bevy Quick Start:** "Get started making your first game now!" | ||
| 2. **Bevy Book:** "Understand how Bevy works, and how you can use it" | ||
|
|
||
| This is intended to cater to two different types of learners, without compromising the experience for either: | ||
|
|
||
| - **Example-first:** These users want to dive right in, see everything in action and get a working game as quickly as possible. | ||
| These users often have an idea in their mind that they want to start prototyping as quickly as possible. | ||
| - **Definition-first:** These users want to carefully build up a mental model of Bevy, thoroughly understanding each new concept before moving on. | ||
| These users tend to be driven by curiosity, or are aiming to carefully develop a new skill. | ||
|
|
||
| Crucially, these paths are independent of the experience levels of the learner! | ||
| Bevy intentionally aims to be inclusive of both complete beginners who have never programmed before, and professionals coming from other engines. | ||
|
|
||
| | | **Beginner** | **Professional** | | ||
| | -------------------- | ------------------------------------------------------------------ | -------------------------------------------------------------------- | | ||
| | **Example-first** | Enthusiastic, wants to create a new version of the game they love. | Exploratory, wants to dive in and see how Bevy holds up in practice. | | ||
| | **Definition-first** | Curious, wants to understand how making games works. | Critical, wants to understand Bevy's unique design choices. | | ||
|
|
||
| Each of these requires their own complementary learning paths that branch as soon as they get to the [Learn page](https://bevyengine.org/learn/) to ensure that the first experience that they have with Bevy matches what they need. | ||
|
|
||
| Once users have completed the introductory learning materials in their path of choice, they can begin creating their own games or move on to our advanced examples to see how everything comes together in a realistic way. | ||
|
|
||
| ### Bevy Quick Start: the example-first path | ||
|
|
||
| Users following the example-first path will tend to take the following route: | ||
|
|
||
| 1. Encounter the Bevy homepage due to social media or word of mouth. | ||
| 2. Navigate to the Learn page. | ||
| 3. Choose one of the most relevant **quick start games**. | ||
| 4. Complete that tutorial. | ||
| 5. Dive into making the game they have in mind, accessing the following resources as needed when they encounter road-blocks: | ||
| 1. Official Examples. | ||
| 2. The Bevy book. | ||
| 3. Community tutorials and template games. | ||
| 4. Various community support forums. | ||
| 5. Streams, YouTube channels and blogs. | ||
| 6. Advanced examples. | ||
|
|
||
| Each quick start game should: | ||
|
|
||
| 1. Assume zero existing knowledge of Bevy. | ||
| 2. Begin with a initial high-level explanation of what we're trying to build. | ||
| 3. Introduce commented code first, then explain what each of the critical terms means as they come up. | ||
| 4. Be broken into compilable, playable sections: one per page of the guide. | ||
| 5. Gradually refactor the code to add more functionality. | ||
| 6. End with a list of suggestions (with appropriate links) on how you could extend the game in interesting ways. | ||
|
|
||
| This path should prioritize: | ||
|
|
||
| 1. Rapid time-to-fun. | ||
| 2. Functional, good-enough explanations that are tied to the code in front of them. | ||
| 3. Relevance of quick-start game to the genre of game they want to make. | ||
| 4. High asset quality. | ||
| 5. Ease of extending the quick-start game with their own tweaks. | ||
| 6. Explaining how to get unstuck, through documentation, community help and filing issues. | ||
|
|
||
| ### The Bevy Book: the definition-first path | ||
|
|
||
| Users following the definition-first path will tend to take the following route: | ||
|
|
||
| 1. Encounter the Bevy homepage due to social media or word of mouth. | ||
| 2. Navigate to the Learn page. | ||
| 3. Select the **Bevy book**. | ||
| 4. Read through the book, largely in order. | ||
| 5. Once they feel they have a good enough understanding of the engine, they will begin to make their own games, typically by jumping over onto the example-first path. | ||
| 6. As they explore, they will also browse: | ||
| 1. The source code. | ||
| 2. [docs.rs](https://docs.rs/bevy/) | ||
| 3. CONTRIBUTING.md, GitHub issues and pull requests. | ||
| 4. Release notes. | ||
| 5. The engine development channels on Discord. | ||
| 6. Advanced examples to see how everything comes together. | ||
|
|
||
| Each chapter of the Bevy Book should: | ||
|
|
||
| 1. Have a clear topic, and give a high-level overview of the subtopics it is going to cover and how they fit together. | ||
| 2. Be broken down into several sections / pages to focus on detailed topics. | ||
| 1. These should have simple, minimal examples explaining how that functionality works. | ||
| 3. Link to appropriate sections of quick start guides that demonstrate the ideas being taught in a more coherent way. | ||
|
|
||
| This path should prioritize: | ||
|
|
||
| 1. Clear, thorough explanations. | ||
| 2. Carefully introducing one concept at a time in an organized fashion. | ||
| 3. Connecting concepts to each other in context. | ||
| 4. Explaining the technical details of how things work, but only in clearly marked asides. | ||
| 5. Communicating all of the supporting development practices that make Bevy productive: | ||
| 1. How to set up your dev environment. | ||
| 2. Code organization. | ||
| 3. Design patterns and best practices. | ||
| 4. Testing, benchmarking and debugging. | ||
| 5. Contributing to Bevy itself. | ||
| 6. Linking to further reading: official examples, `docs.rs` and (very sparingly) source code links. | ||
|
|
||
| ## Contributor's style guide | ||
|
|
||
| When writing and reviewing learning material for the Bevy Book and Quick Start Games, please try to follow these guidelines: | ||
|
|
||
| ### Writing | ||
|
|
||
| 1. Use clear, simple language. | ||
| 2. Prefer short sentences. Remove extra words. | ||
| 3. **Bold** new vocabulary words where they are defined. | ||
| 1. Define them as soon as is reasonable after they are introduced. | ||
| 4. Make sure your grammar and spelling are correct. | ||
| 5. Avoid idioms and slang. | ||
| 6. Speak directly to the reader in an approachable tone. Use "we" and "you" pronouns. | ||
| 7. It can be useful to create specific, named characters to demonstrate a point. | ||
| 1. If you do, pick a pronoun set for them and stick to it. | ||
| 2. Otherwise, use "they/them" third-person pronouns to refer to the reader or others. | ||
| 8. Keep humor light. | ||
| 1. Avoid off-color or offensive humor. | ||
| 2. Be mindful not to overuse in-jokes or cultural references. | ||
| 3. Don't drag your jokes out: that's not what the audience is here to read. | ||
|
|
||
| ### Organizational | ||
|
|
||
| 1. Carefully organize your work into separate pages, headings, paragraphs and code blocks. | ||
| 2. Clearly signal when you are explaining a concept in technical depth so it can be skipped. | ||
| 3. Use lists, numbered lists and sub-lists to present information in bite-sized ways. | ||
| 1. Refer back to these items by number! | ||
| 4. Provide plenty of links, but be sure that what you are linking to is obvious by context. | ||
| 1. Link to other sections of the book / example / web page when you mention them. | ||
| 2. Always link to the most specific location you can, whether that's a section on a page or a method on a struct. | ||
| 3. Use the `latest` tag when linking to Bevy docs and source code so it won't go stale every time the version is updated. | ||
| 4. When linking to detailed explanations or discussions, summarize the most important points in addition to providing a link. | ||
|
|
||
| ### Technical | ||
|
|
||
| 1. All examples must be able to be compiled and run. | ||
| 2. Prefer game-relevant, descriptive examples and variable names over generic ones like `MyEvent`. Avoid meaningless names like `foo` at all times. | ||
| 3. It's good practice to break your code into blocks with comments or explanatory text, but you need to link to a cohesive, copy-able whole at the end. | ||
| 4. Examples must pass Bevy's standard `clippy` lints. | ||
| 5. The polish level of your examples should correspond to the point you're trying to make. | ||
| 1. If you're demonstrating a new feature, show only the most basic syntax as locally as possible. | ||
| 2. When trying to explain how a game can be made, organize and polish your code to showcase best practices. | ||
| 3. Lack of polish should serve an end: don't show bad or sloppy practices without a good reason. | ||
| 4. Showing how (and why!) to refactor your code is a very powerful teaching tool. | ||
| 6. Stick to a consistent style (e.g. for loops vs map) within each example. | ||
| 7. If you need to give advice that will only matter to some of your audience (e.g. how to handle an edge case, or support a specific platform), do so in a clearly marked aside or list. | ||
| 8. Examples should not use or rely on third-party plugins. | ||
| These may be appropriate to link in "next steps" however at the end of the examples. | ||
| 1. Third-party crates should be limited to the most essential, such as `rand`. | ||
| 9. If additional code block attributes like `no_run` or `hide-lines=x-y` need to be specified, you should always order these so that the language is the last attribute. If we would specify `rust,no_run` the syntax highlighting wouldn't work, but changing it to `no_run,rust` makes it work. | ||
| 10. To validate local code changes you can either `./learning-code-examples/validate_examples.sh` from anywhere, or from the project's root `cd learning-code-examples && cargo check --examples && cargo clippy --examples && cargo fmt --check`. | ||
| 11. To make sure your web-based files (html, markdown) are formatted correctly run the commands: | ||
|
|
||
| ``` | ||
| markdownlint -f -c .github/linters/.markdown-lint.yml . | ||
| djlint | ||
| typos | ||
| ``` | ||
|
|
||
| in the root directory of your local Bevy website repository. This will format markdown files and tell you the issues in HTML files. In order to run the command you should install `markdownlint-cli`, `djlint`, and `typos-cli`. See: <https://github.com/igorshubovych/markdownlint-cli>, <https://www.djlint.com/docs/getting-started/>, and <https://github.com/crate-ci/typos?tab=readme-ov-file#install>. Note that the CI also includes `editorconfigchecker` but there isn't an easy way to run this manually, so you should instead rely on CI to validate files with this tool. | ||
| 12. To reference Rust API docs you can use markdown's reference-style links like so: | ||
| [`HashMap`] | ||
|
|
||
| ```md | ||
| [`HashMap`] | ||
|
|
||
| [`HashMap`]: https://doc.rust-lang.org/std/collections/struct.HashMap.html | ||
| ``` | ||
|
|
||
| [`HashMap`]: https://doc.rust-lang.org/std/collections/struct.HashMap.html | ||
| See our Contributing Guide [in the repository](content/contribute/introduction.md), or [on the site](https://bevyengine.org/contribute/introduction). |
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,6 @@ | ||
| +++ | ||
| title = "Contributing" | ||
| template = "docs.html" | ||
| page_template = "docs.html" | ||
| redirect_to = "/learn/contribute/introduction" | ||
| +++ |
2 changes: 1 addition & 1 deletion
2
content/contributing/helping-out/_index.md → ...nt/learn/contribute/helping-out/_index.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -1,7 +1,7 @@ | ||
| +++ | ||
| title = "Helping out" | ||
| template = "docs.html" | ||
| redirect_to = "/contributing/helping-out/how-you-can-help" | ||
| redirect_to = "/learn/contribute/helping-out/how-you-can-help" | ||
| [extra] | ||
| weight = 2 | ||
| +++ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.