gHacks are all about being “for the people, by the people”. This repo was originally created to share real-world hackathons that Google Cloud teams have hosted with their customers. It has since grown to be a learning tool for anyone, anywhere, and follows these core principles:
This document provides the general guidelines for how to contribute to the gHacks project.
The best way to contribute is to engage the gHacks team by submitting an issue via GitHub.
There are multiple ways to contribute:
Before you start contributing and file an issue, make sure you’ve checked for existing issues:
You have found a bug in a hack and want to report it. Great! Something is not right, and it needs to be fixed.
Please go to the Issues page for the gHacks repo and create an Issue/Bug.
Let us know which hack has the bug. Is it in the Student guide? Coach guide? Is it a documentation issue? Or an issue with a provided resource file or solution file? The form will guide you on what information you should submit. The gHacks team will follow up on your submission.
We welcome bug fixes! If you wish fix the bug yourself, please see the section on how to Contribute an update to an existing hack
You have a proposal on how to improve an existing hack, or you want to suggest a new hack topic. For improving an existing hack, your proposal should go beyond a “bug fix” and be a fair sized improvement or addition of content.
For new hack proposals, consider:
At this point, you are just giving feedback. You may, or may not, be interested in authoring or updating content yourself. Thanks in advance for your feedback, we can’t wait to read it!
Please go to the Issues page for the gHacks repo and create an Issue/Proposal.
The form will guide you on what information you should submit. The gHacks team will follow up on your proposal.
We welcome new hacks and improvements to existing hacks. If you intend to ‘do the work’ you are proposing, read on for how to:
You want to author a new hack yourself, or with a team of others, and contribute it to gHacks.
Please check if there is an existing “Proposal” Issue in the gHacks repo to track your new hack. Add a comment to the existing issue to let the gHacks team know you are working on this contribution.
If there is no existing Issue for the new hack you plan to contribute, please start by going to the Issues page for the gHacks repo and create an Issue/Proposal.
In general, the gHacks team prefers to collaborate with and assist contributors as they author new hacks. This makes the review process smoother when a new hack is ready to be published via a Pull Request.
By collaborating with the gHacks team from the start, it sets your hack up for success by reducing:
Once you have submitted an Issue/Proposal via GitHub, you can expect the following:
NOTE: If you are not familiar with Git, GitHub, or Markdown files, you are not alone! Since gHacks is a collection of mostly course content and documentation, many of our contributors are not developers. It’s out of scope to explain these tools here. However, there are plenty of great resources on the Internet that can help get you up to speed. Here are two to consider as starters:
Also, don’t be shy to ask the gHacks team for help navigating Git and GitHub.
All contributions to the gHacks repo come through pull requests. This means that development of a hack starts by forking the gHacks repo into your own GitHub account. This is where you will do your work. Eventually, you will create a pull request to submit your work back to the gHacks repo for review.
NOTE: If you are working with a team of co-authors, the team should pick one person to create a fork into their GitHub account. The other authors should collaborate and contribute to that person’s fork during the development process.
Okay, ready to get started creating your own gHack?
The instructions below assume you have the Git command line tool on your machine. If you’re more comfortable in a GUI Git client, you can use that too (we recommend Atlassian’s SourceTree).
git clone https://github.com/<myname>/WhatTheHack.git
cd WhatTheHack
git branch MyWork
git checkout MyWork
XXX” as a placeholder for the number prefix
mkdir XXX-MyAwesomeHack ../Coach
/Solutions
../Student
/Resources
../
../Coach
/Solutions
../Student
/Resources
When you feel your hack is finished and ready for release, this is the process we will follow:
XXX-MyAwesomeHack” to “067-MyAwesomeHack”)If you are planning to fix a bug or implement an update for an existing hack, please check if there is an existing Issue agains the gHacks repo to track it. Add a comment to the existing issue to let the gHacks team know you are working on this contribution.
If there is no existing Issue for the update you plan to contribute, please start by going to the Issues page for the gHacks repo and create one:
To contribute an update to an existing hack, you should:
The gHacks team will review the Pull Request with an eye towards compliance with the gHacks Author’s Guide, as well as any spelling or grammar issues. These reviews are generally shorter if the update is by one of the hack’s original authors.
If the update is from a new contributor, the gHacks team will request one of the original author’s of the hack to review the update for technical accuracy.
We’ve put together a lot of guidance on how to host a gHacks event in our gHacks Hosting Guide.
If you have further questions, or want to get in touch with the gHacks team to learn more about hosting a gHacks event, please go to the Issues page for the gHacks repo and create an Issue/Request.
NOTE: The gHacks repo is self-serve content. The gHacks team does not offer logistical support or GCP environments. The gHacks team will make its best effort to connect you with hack authors for details on the technical content, or answer any other questions you have about hosting an event.
The BEST feedback you could share is to let us know how and where you have used gHacks content. Our hacks’ authors are always excited to learn if their content is being used. We would love to know delivery dates, # of attendees, locations (if in-person), and how it impacted your attendees’ technical readiness.
If you have found this content useful, or hosted a gHacks event, please go to the Issues page for the gHacks repo and create an Issue/Report.
NOTE: Reporting that you hosted a gHacks event this way will be publicly viewable. You should NOT share the name of the organization you hosted an event with unless the organization has given permission to share its name publicly.
Your contributions to open source, large or small, make projects like this possible. Thank you for taking the time to contribute.