What The Hack is all about being “for the people, by the people”. This repo was originally created to share real-world hackathons that Microsoft employees 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 What The Hack project.
The best way to contribute is to engage the What The Hack 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 WTH 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 WTH 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 WTH repo and create an “Issue/Proposal”.
The form will guide you on what information you should submit. The WTH 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 What The Hack.
Please check if there is an existing “Proposal” Issue on the WTH repo to track your new hack. Add a comment to the existing issue to let the WTH 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 WTH repo and create an “Issue/Proposal”.
In general, the WTH 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 WTH team from the start, it sets your hack up for success by reducing:
We offer the option of collaborating via Microsoft Teams in a “What The Hack” team that we maintain at Microsoft.
You may still choose to develop a new hack independently and submit it for review via the PR process below.
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 What The Hack 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 WTH team for help navigating Git and GitHub.
All contributions to the What The Hack repo come through pull requests. This means that development of a hack starts by forking the What The Hack 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 What The Hack 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 What The Hack?
We have a GitHub Action that automates the creation of a new hack and “scaffolds” out all of the Markdown templates from the WTH Author’s Guide for you. After that, you can open your favorite text editor and start plugging in your content.
The instructions below assume you have the Git command line tool and Visual Studio Code installed on your machine.
https://github.com/<myGithubName>/WhatTheHack
NOTE: Do NOT change the value of the “Run workflow from” field from the pre-selected “branch: master”
xxx-MyAwesomeHack
xxx-MyAwesomeHack
git clone
command as shown below, then navigate to the WhatTheHack
folder that is created afterward.
git clone https://github.com/<myGitHubName>/WhatTheHack.git
cd WhatTheHack
git checkout xxx-MyAwesomeHack
NOTE: It is a best practice to never work directly on the main/master branch.
WhatTheHack
folder on your local machine and open it with Visual Studio Code or your favorite text editor. In the xxx-MyAwesomeHack
folder, you should see Markdown templates as per the What The Hack Author’s Guide:
../
../Coach
/Solutions
../Student
/Resources
NOTE: If you have any questions regarding how to use Git/GitHub (commits/push/pull/etc), the WTH V-Team will be happy to help you.
When you feel your hack is finished and ready for release, this is the process we will follow:
XXX-MyAwesomeHack
” to “067-MyAwesomeHack
”)A spell checker will run on each new pull request submitted and again each time additional commits are made against that pull request. It will use common English words as well as technical terms from the .github/workflows/spell-check/.wordlist.txt
file. The spell checker ignores content within code blocks.
This will run on each pull request that is submitted to the master
branch.
If the spell check fails, click the Details
link as highlighted in the image below, to reveal the spelling errors that were detected.
The spelling errors will be listed along side of each page that they occurred on as in the image below:
If the spell checker detects spelling errors, you have 3 options for resolving them:
databaseName
or ColumnName
), you should wrap the word in backticks (``) which will make it a code block..wordlist.txt
to your new WTH sub-directory and include all the words you want the spell checker to ignore..github/workflows/spell-check/.wordlist.txt
file is formatted).If you choose not to collaborate with the WTH team via Microsoft Teams, alternatively you can use a draft pull request.
A good way to communicate before investing too much time is to create a “draft” pull request and share it with the WTH team. You can do this by selecting “Create Draft Pull Request” when opening a pull request. This will let people looking at your PR know that it is not well baked yet.
The WTH team will review your new hack following the same guidelines as above. However, the process will take longer if we need to spend additional cycles going back and forth within GitHub’s PR process.
If you are planning to fix a bug or implement an update for an existing hack, please check if there is an existing Issue on the WTH repo to track it. Add a comment to the existing issue to let the WTH 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 WTH repo and create one:
To contribute an update to an existing hack, you should:
The WTH team will review the Pull Request with an eye towards compliance with the WTH 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 WTH 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 What The Hack event in our WTH Hosting Guide. We also have a 60 minute video available that explains the hosting process here: What The Hack - Technical Train the Trainer Tech Talk.
If you have further questions, or want to get in touch with the What The Hack team to learn more about hosting a WTH event, please go to the Issues page for the WTH repo and create an “Issue/Request”.
NOTE: What The Hack is self-serve content. The WTH team does not offer logistical support or Azure environments. The WTH 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 What The Hack 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 WTH event, please go to the Issues page for the WTH repo and create an “Issue/Report”.
NOTE: Reporting that you hosted a What The Hack 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.
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution.
For details, visit https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repositories using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com
with any additional questions or comments.