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

Gatsby 1.0 contributing #643

Closed
ghost opened this issue Jan 20, 2017 · 4 comments
Closed

Gatsby 1.0 contributing #643

ghost opened this issue Jan 20, 2017 · 4 comments

Comments

@ghost
Copy link

ghost commented Jan 20, 2017

I decided, to invest some time into the gatsby 1.0 development.
Actually, I wanted to start by reading the sources, but couldn't find any.
Kyle, do you have any written roadmap, specs, guidelines, plugins/typegens structure description, relevant docs?
And, is there a public repository for the following packages?

"gatsby": "1.0.0-alpha11-alpha.696c2e32",
"gatsby-graphql-utils": "1.0.0-alpha11-alpha.696c2e32",
"gatsby-parser-remark": "1.0.0-alpha11-alpha.696c2e32",
"gatsby-parser-sharp": "1.0.0-alpha11-alpha.696c2e32",
"gatsby-plugin-glamor": "^1.0.0-alpha11-alpha.696c2e32",
"gatsby-sharp": "1.0.0-alpha11-alpha.696c2e32",
"gatsby-source-filesystem": "1.0.0-alpha11-alpha.696c2e32",
"gatsby-typegen-filesystem": "1.0.0-alpha11-alpha.696c2e32",
"gatsby-typegen-remark": "1.0.0-alpha11-alpha.696c2e32",
"gatsby-typegen-remark-copy-linked-files": "1.0.0-alpha11-alpha.696c2e32",
"gatsby-typegen-remark-prismjs": "1.0.0-alpha11-alpha.696c2e32",
"gatsby-typegen-remark-responsive-image": "1.0.0-alpha11-alpha.696c2e32",
"gatsby-typegen-sharp": "1.0.0-alpha11-alpha.696c2e32",
@KyleAMathews
Copy link
Contributor

Hey awesome! Really looking forward to your help!

You'll want to start reading the 1.0 issue and issues linked from it if you haven't already #419

I've been off the past couple of months doing a big R&D push for 1.0 which I'm actually in process of rolling up into a new alpha release early next week. There's a lot there I'll be talking about soon. All of that has been happening on this branch https://github.com/gatsbyjs/gatsby/tree/unist-graphql

Gatsby is now using Lerna which facilitates creating a "monorepo". So all those packages are now here: https://github.com/gatsbyjs/gatsby/tree/unist-graphql/packages

I'll be writing up release notes along with the new alpha plus a lot of documentation about how different things work e.g. the plugin system that'll aid in getting started helping out on 1.0.

The gatsby project page is out of date but I'll be updating this as well https://github.com/gatsbyjs/gatsby/projects/1

Lots to do! Things are starting to settle down in my mind with how everything should work so will be writing this up more for feedback and refinements + getting help filling in missing pieces.

@ghost
Copy link
Author

ghost commented Jan 21, 2017

Could you elaborate a little about your workflow?

I mean, unit tests are the way to go, but I like to validate my changes visually, wherever possible.

So, let's say I'm in the unist-graphql

Now, I make a change to one of the packages
and want to test the result visually, let's call it a "manual integration test", like run the gatsby develop on a demo project and see what is going on.

Does it mean we need to compile and somehow redeploy all the packages locally, every single change? How do you streamline this?

I guess it has to do with:

"build": "lerna run build"
"watch": "lerna run watch"

@KyleAMathews
Copy link
Contributor

It's... a bit convoluted. Right now my dev practice is to symlink the compiled file of a particular package from my checked out version of the monorepo into a site I'm working on.

So say I'm developing site A using 10 gatsby packages and discover one of them has a bug or missing feature (a very common occurrence atm haha :D). What I do at that point is run npm run watch in the package's source directory and then symlink the compiled file(s) (could be index.js and/or gatsby-*) into site A's node_modules directory. Then it's quite easy to make changes and quickly see the effect while developing on your site. This avoids a whole host of issues that arise with npm link.

I'm also leveraging Lerna's "canary release" ability heavily to make changes, commit, publish to NPM (tagged with canary), and then point sites at the canary release and deploy. Very quick iterations this way. I'm planning on adding a script to Travis CI to release canaries on every successful test pass on the 1.0 branch.

@KyleAMathews
Copy link
Contributor

Some other contributors and I have been building out a nice how-to-contribute page on the website that should serve as the getting started guide to developing on 1.0. Please help make that page better!

https://www.gatsbyjs.org/docs/how-to-contribute/

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

No branches or pull requests

1 participant