Skip to content
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

Book evolution in main Bevy repository #70

Open
wants to merge 3 commits into
base: main
Choose a base branch
from

Conversation

mockersf
Copy link
Member

@mockersf mockersf commented Jun 4, 2023

RENDERED

proposal to help start and improve on the book

- Add a new folder in Bevy main repository for the book
- Start accepting contributions for it, with the layout / rules from [RFC #23: Quick Start Book](https://github.com/bevyengine/rfcs/blob/main/rfcs/23-quick_start_book.md)
- Set up main repository CI to check that the book content is up to date with the code
- For new book PRs, this should be blocking
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How are these PR types distinguished? If it modifies any code in that folder at all?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

if the build fail:

  • if the /book folder has been changed, fail the CI
  • else, put a tag on the PR (or a comment, or open an issue)

Copy link
Member

@alice-i-cecile alice-i-cecile left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm in favor of this: decoupling style from content will make writing and contributing easier.

I would also very much like to see movement here, and if we can iterate in a lower-stakes way so much the better.

@cart
Copy link
Member

cart commented Jun 5, 2023

This doesn't acknowledge or address the recent plan as laid out here: bevyengine/bevy-website#623 (comment). I personally think that is still the best path forward.

I'm also not particularly excited about moving book work into the bevy repo:

  1. This increases the friction to work on book in a WYSIWYG way. With the plan linked above, you can clone the bevy-website repo, run zola serve, and get a hot-reloaded rendered version of the book content. Moving the book content to the bevy repo would mean cloning two repos. If we're embedding bevy content in the bevy-website zola site, that would mean cloning the bevy repo inside bevy_website, which is not how people currently work with these repos.
  2. Adding another largely orthogonal chunk of dev work to the main Bevy repo gives me pause. Sifting through activity in the Bevy repo is already a challenge
  3. It clutters the bevy repo commit history. We'll have real "bevy lib changes" intermingled with "tweak language of Intro Book section" and "fix spelling mistake in render app book section".

I don't think the merged approach is a meaningful improvement to the "sync problem". As long as we have bevy-website/main track either bevy/main or bevy/latest by convention, this feels just as good. And I think we generally want people submitting pull requests to a book branch that tracks bevy/latest (like the plan in bevyengine/bevy-website#623 (comment)), not bevy/main (as this RFC suggests). Imo we should generally be landing and publishing book changes as soon as they are ready. Not holding them back until the next release.

@mockersf
Copy link
Member Author

This doesn't acknowledge or address the recent plan as laid out here: bevyengine/bevy-website#623 (comment). I personally think that is still the best path forward.

I think the fact that it hasn't moved in almost 2 months shows it may not be the best path forward...

  1. This increases the friction to work on book in a WYSIWYG way. With the plan linked above, you can clone the bevy-website repo, run zola serve, and get a hot-reloaded rendered version of the book content. Moving the book content to the bevy repo would mean cloning two repos. If we're embedding bevy content in the bevy-website zola site, that would mean cloning the bevy repo inside bevy_website, which is not how people currently work with these repos.

It could be used as a git submodule, and keep working the same way. There are technical solutions to that issue

  1. Adding another largely orthogonal chunk of dev work to the main Bevy repo gives me pause. Sifting through activity in the Bevy repo is already a challenge

With git it's easy enough to filter commits based on what they modified. Here are all the commits on the main repo that modified something in the crates folder: https://github.com/bevyengine/bevy/commits/main/crates. Having the book in another folder would make it easy to ignore if you want.

  1. It clutters the bevy repo commit history. We'll have real "bevy lib changes" intermingled with "tweak language of Intro Book section" and "fix spelling mistake in render app book section".

For me that's actually a feature? No more people opening an issue on the wrong repo because bevy-website is much less visible. It will also increase visibility of book changes which is good.

I don't think the merged approach is a meaningful improvement to the "sync problem". As long as we have bevy-website/main track either bevy/main or bevy/latest by convention, this feels just as good. And I think we generally want people submitting pull requests to a book branch that tracks bevy/latest (like the plan in bevyengine/bevy-website#623 (comment)), not bevy/main (as this RFC suggests).

I disagree, as I think that means the book will always be late. Maybe it doesn't matter that much until Bevy reach 1.0.

Imo we should generally be landing and publishing book changes as soon as they are ready. Not holding them back until the next release.

That seems true while we have a lot to catch up, but not once it's more complete. Which admittedly we still have a way to go to reach.

@cart
Copy link
Member

cart commented Jun 14, 2023

I think the fact that it hasn't moved in almost 2 months shows it may not be the best path forward...

I see this as an indicator of a "time investment issue" not a "plan effectiveness" issue. The person taking the lead there hasn't found the time. The approach discussed requires essentially no changes and could be implemented in a very short period of time. The approach in the RFC is significantly more work to implement.

It could be used as a git submodule, and keep working the same way. There are technical solutions to that issue

First: I doubt this would be seamless as the bevy repo is not directly structured in the way zola needs. We would need to build tooling that transforms it (and solve the "hot reloading" problem ... this seems really nasty to me). Additionally, submodules introduce additional complexity when it comes to working with repos. Ex: needing to know to do git clone --recursive X instead of git clone X. And then devs need to remember to call "git submodule update" because it won't happen automatically. Making and committing changes in a submodule is slightly different than making those changes at the root (you need to cd in to the submodule directory and do the git stuff there). I highly doubt we could make this all a seamless "net neutral" UX change. This is complexity I am worried about navigating. I feel strongly that thrusting it on book contributors (who might be entry level devs) is the wrong call.

With git it's easy enough to filter commits based on what they modified. Here are all the commits on the main repo that modified something in the crates folder: https://github.com/bevyengine/bevy/commits/main/crates

In theory yes. In practice (based on my own usage patterns), I suspect most people are viewing commits in an unfiltered way the majority of the time.

For me that's actually a feature? No more people opening an issue on the wrong repo because bevy-website is much less visible. It will also increase visibility of book changes which is good.

This is a bootstrapping issue imo. We don't have book activity because we don't have book activity. And we have a variety of venues to boost Book dev visibility if we really perceive that as a problem.

I disagree, as I think that means the book will always be late. Maybe it doesn't matter that much until Bevy reach 1.0.

We can release book "version" updates in parallel with bevy releases. We don't need to wait for a Bevy release to happen before we prep the changes for that release. The plan in the issue accounts for this.

@alice-i-cecile
Copy link
Member

I've written up a fresh discussion about this in bevyengine/bevy#16430

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants