-
Notifications
You must be signed in to change notification settings - Fork 47k
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
Move website source to new reactjs.org repo #11075
Comments
Liking this! I think this will streamline efforts from both sides. |
Another benefit could be that since you're moving the docs (along with their license) is being able to display the MIT license in the navigation bar per this discussion: #10891 |
There's a whole lot of benefits. My favorite one is hopefully people will stop trying to read docs on GitHub. We'll also reduce the issue noise and hopefully have more community members with commit access. I'm unreasonably excited about this. @bvaughn Let me know if I can help. I love deleting/moving things. Better than real work! |
😆 Thanks Dan! I enjoy it too. I'll take care of this one. 😁 |
@bvaughn Would you require help in this effort? I am keen to help if you do. |
Thanks for the offer, but I think I'm good for the bulk of it. Help would be great once the project has been moved and I file a bunch of issues. 😄 |
One thing I did not consider when creating this issue was how to best keep To a lesser extent, this also applies to the way we read the current React version from the I see a couple of options. I'm currently leaning toward the first one. Option 1The website's build scripts could load the latest error codes from the facebook/react repo at build time. I think this could be done by way of a Gatbsy source plugin.
Option 2The
Option 3We could fork the error codes JSON and store a copy in the new repo.
|
I wrote a Gatsby source plugin that loads the data from the React repo (using GitHub's user content API): const request = require('request-promise');
const errorCodesUrl = 'http://raw.githubusercontent.com/facebook/react/master/scripts/error-codes/codes.json';
exports.sourceNodes = async ({ boundActionCreators }) => {
const { createNode } = boundActionCreators;
const jsonString = await request(errorCodesUrl);
createNode({
id: 'error-codes',
children: [],
parent: 'ERRORS',
internal: {
type: 'ErrorCodesJson',
contentDigest: jsonString,
},
});
}; I think this is reasonable for now. Let's talk more if anyone has concerns though. |
Sounds good to me. (But does this mean we can't run website offline now?) |
To run the website offline we'll need to first re-enable service workers (and figure out why they were causing intermittent problems). But this change won't preclude that. The plug-in I wrote embeds the data at build (or dev startup) time so that the end result will be the same as before. |
I believe it should be possible to preserve history in this new repo by doing the following: # git filter-branch only supports a single folder
# So start by creating one pruned repo per folder we want to preserve
# Copy history from the "docs" folder
# (This step will take a long time because there's a lot of history to copy)
git clone [email protected]:facebook/react.git react-docs
cd react-docs
git filter-branch --prune-empty --subdirectory-filter docs master
cd ..
# Copy history from the "www" folder
git clone [email protected]:facebook/react.git react-www
cd react-www
git filter-branch --prune-empty --subdirectory-filter www master
cd ..
# Create a new repo to unify our filtered repos
mkdir reactjs.org
cd reactjs.org
git init
# At least one commit is needed before the below steps will work
git commit --allow-empty -m "Initial (empty) commit"
# Merge docs changes
git remote add react-docs ../react-docs
git fetch react-docs
git merge -s ours --no-commit react-docs/master --allow-unrelated-histories
git read-tree --prefix=docs -u react-docs/master
git commit -m "Import docs"
# Merge www changes
git remote add react-www ../react-www
git fetch react-www
git merge -s ours --no-commit react-www/master --allow-unrelated-histories
git read-tree --prefix=www -u react-www/master
git commit -m "Import www"
# Move things around (as outlined in the issue description) commit by commit Edit 1: Edit 2: I was able to get this working by only copying history for the |
We do something similar for the Babel site - It loads all the package readmes from the main Babel repo as part of the build. The script is here: https://github.com/babel/website/blob/master/scripts/download-readmes.js
I'm glad you could work this out. I was splitting one of Yarn's repositories into two separate ones (https://github.com/yarnpkg/releases and https://github.com/yarnpkg/release-infra) and it took forever to work out how to actually do it 😛 |
Gatsby's plug-in system made this ridiculously easy to do. 😄
|
Now that the new website has launched I propose we do the following clean-up steps:
This will offer several benefits, including:
I'm creating this issue mostly to facilitate discussion around the new proposed directory structure (below).
Proposed Directory Structure
cc @ericnakagawa, @flarnie, @joecritch
The text was updated successfully, but these errors were encountered: