Articles From Sarah Guthals
Filter Results
Article / Updated 08-11-2023
You can earn a few different kinds of Minecraft badges. Here, you find out how to earn Scramble badges, which are different from the other types: All the code blocks you need are already in the programming area — they’re just scrambled around on the screen in an animation. To earn a Scramble badge, follow these steps: Test the correct version of the code in the simulator or Minecraft to see what it’s supposed to do, like saying “Hello, World!” Gather together all blocks that have been scrambled on the screen, by dragging them near each other. Unscramble the blocks, and test your mod to see whether it matches the correct version that you test in Step 1 of this list. To find all the blocks you need in order to complete the badge (sometimes, the blocks that have been scrambled are offscreen), you move around by using the scroll bars on the right side and bottom of the programming environment. Earn the Saying Hello badge: Scramble Edition Open the Saying Hello (Scramble) challenge by clicking on the badge. You see ten blocks scrambled on the screen. Follow these steps to solve the challenge and earn the badge: Click the blue Test button to test the correct version in Minecraft, or click the orange Test button to test the correct version in the simulator. Then observe what happens. Gather the ten blocks and begin to arrange them in such a way that when you run the mod, it does exactly the same thing that the correct version did. Test your mod in Minecraft or the simulator to see whether it has the same effect as the correct version. If it doesn’t, edit the blocks arrangement and test again. Continue this edit-test cycle until you have put together the correct arrangement of blocks. Communicate with your computer Writing code is the way that programmers communicate with their computers, and the way that you communicate with Minecraft. The problem, however, is that computers do exactly what you tell them to do, not what you think they should do. For example, in the Saying Hello (Scramble) challenge, you may have noticed that the answer looks strange if you expected the messages to be sent in numbered order, like this: One Mississippi Two Mississippi Three Mississippi and instead they’re sent out of order, like this: Two Mississippi One Mississippi Three Mississippi If you were told, “Go to your shoes and put on your room,” you probably would figure out that what you should do is go to your room and put on your shoes. If you told a computer, “Go to your shoes and put on your room,” the computer would literally go to its shoes and then try to put on its room, which is impossible, so it would probably display an error message. You must be precise when you write code, and — more importantly — you should test your code often and in small increments to catch mistakes. At the bottom of any Scramble challenge are two videos that you can watch to see strategies for completing this type of badge. Though the videos aren’t specific to each challenge, watching them can help you with any badge that asks you to unscramble code.
View ArticleCheat Sheet / Updated 02-10-2023
When you first log in to GitHub.com, it can feel overwhelming. What is GitHub? GitHub is more than a place to store your code; it’s a community and a philosophy about how code should be written. When you’re first learning and navigating the website, you should always remember that the goal of GitHub is to provide a secure, collaborative environment where newcomers and experts alike can design, develop, and deploy any software, from programs that say “Hello World” to code that sequences human proteins to help cure major infectious diseases around the world. To be a part of this community, you just have to be an effective communicator, find and create collaborative projects, and know how to find the help you need, when you need it.
View Cheat SheetArticle / Updated 07-14-2022
When coding, it’s important to teach kids the basics of setting and finding position. Setting the position of an object means assigning it coordinates to put it in a specific place onscreen. Finding the position of an object means identifying its coordinates to know where it’s located. Using pseudocode While each programming language uses its own structure for setting and finding coordinates, a typical pseudocode expression you may write to set the position of an object looks like this: setx <em>x-coordinate</em> sety <em>y-coordinate</em> Or setposition <em>(x-coordinate, y-coordinate)</em> To find the current position of an object, you can write pseudocode for each separate coordinate: x-position for the x-coordinate of the object, and y-position for the y-coordinate of the object. You can also write position to describe the object position as a coordinate pair. Using Scratch to set position To set the x-coordinate of an object in Scratch, use the set x to <em>number</em> command in the Motion category. The minimum value of the x-coordinate ranges is -240, and the maximum value is 240. To set the y-coordinate of an object in Scratch, use the set y to <em>number</em> command in the Motion category. The minimum value of the y-coordinate ranges is -180, and the maximum value is 180. To set both the x-coordinate and y-coordinate of an object in Scratch, use the go to x: <em>number</em> y: <em>number</em> command in the Motion category. The range of the x-coordinate value is -240 to 240, and the range of the y-coordinate value is -180 to 180. In Scratch, you can set the size of an object using the set size to number % command in the Looks category. This sets the size of the object as a percentage of its original size. Percentages smaller than 100 shrink the object. Percentages larger than 100 grow the object. Using Scratch to find position To find the x-coordinate of an object in Scratch, use the x position command in the Motion category. To find the y-coordinate of an object in Scratch, use the y position command in the Motion category. You and your coder can use these commands in your programs when you need to write commands that require information about an object's position. As you code, sometimes you want to position an object (sprite) onscreen and then get its coordinates. You can do this for any sprite using either of these methods: Select the checkbox next to the x position command and the y position command in the Motion category to show these values onscreen. On the thumbnail of the sprite, click the “i” icon to expand its information center and then view the x: and y: values displayed there. In both methods, the coordinates of Scratch Cat are (60, -18). Using JavaScript To set both the x-coordinate and y-coordinate of an object in JavaScript, identify the object you want to position, and then use the setPosition command. Here are the steps for how to position an image of a mouse onscreen in the Code.org App Lab, using JavaScript. In App Lab, click the Design button above the emulator of the mobile device. In the Workspace, select Image → Choose. The Choose Assets dialog box opens. Click the Upload button. Select the file you want, and then click the Choose button. The uploaded file appears in the dialog box. The name of the uploaded image file shown here is mouse.png. In the App Lab program workspace, type these commands: >image("character", "mouse.png"); setPosition("character", 160, 225, 100, 100); Here is what these commands do: The first command creates an image reference identification, character, and links the file, mouse.png, to this identification. The second command displays the image in character according to four quantities: the x-coordinate of the object, the y-coordinate of the object, the width of the object in pixels, and the height of the object in pixels. In App Lab, the range of the x-coordinate value is 0 to 320, and the range of the y-coordinate value is 0 to 450. When using JavaScript to program images displayed on a webpage, these values have larger maximum values, representing the larger size of a computer screen. The image below shows the mouse positioned at the coordinates (160, 225), which is the exact center of the screen. You can see that the mouse is positioned by its upper-left corner where the tip of its tail is located. The mouse has a width of 100 pixels and a height of 100 pixels. To find the x-coordinate of an object in JavaScript, use the getXPosition("character"); command where character is the identification reference of the object. To find the y-coordinate of an object in JavaScript, use the getYPosition("character"); command where character is the identification reference of the object. You and your coder can write the following code to find and display onscreen the coordinates of an object named character. This assumes you have uploaded an image file and assigned it to the reference identification, character. Type this code in the App Lab program workspace. var x = getXPosition("character"); var y = getYPosition("character"); textLabel("xcor"); textLabel("ycor"); setText("xcor", "x-coordinate is " + x); setText("ycor", "y-coordinate is " + y); Here is how this code works: The var x variable gets the x position and the var y variable gets the y position of the object. The two textLabel commands create locations onscreen, called xcor and ycor, to display information. Each setText command displays a value in a text label. The value of x displays in the xcor label and the value of y displays in the ycor
View ArticleCheat Sheet / Updated 04-27-2022
Coding is fast becoming a skill that every child needs to be educated for in the 21st Century. But coding is taught at only a small fraction of schools, and often only at the high school level. Helping kids learn how to code also means you’re assisting them in developing a skill that is highly marketable and sets them apart from peers at school and later, in their careers. The topics in this cheat sheet can assist you on getting started when your kid expresses an interest in learning how to code.
View Cheat SheetCheat Sheet / Updated 02-24-2022
Modding Minecraft allows players to make large interactive modifications to their Minecraft worlds with a simple click of a button. Although you can build infinite mods, this book focuses on creating Minigames within Minecraft, where players can compete in single-player and multi-player mode. Designing and coding the Minigames requires coding, but with the help of LearnToMod, you can create your own Minigame to play with friends!
View Cheat SheetArticle / Updated 01-24-2022
Modding (adding modifications to the game) is a great way to customize your experience in the game, and mods allow players to inject their own creativity into their open Minecraft worlds. One of the great things about Minecraft modding is that anyone and everyone can add their own spin on things. You have the ability to create your own mods, share them with the community, and gain notoriety for creating some cool in-game ideas! You can also download, install, and remix other player-made mods, creating a constant evolution of the ways to play the game. So, How Do You Download & Install Mods in Minecraft? Unless your writing unique code from scratch and building your own mod, the best way to start to experience this world of customization is to download other players already-created mods. After downloading, you can then easily install them into your game and begin using them immediately! Follow the instructions below. Downloading Mods Thousands of people from around the world are sharing their mods every day. To download a Minecraft mod, go to a trusted site like MinecraftMods or your LearnToMod account, browse the list of user-created mods, and click on one that you find interesting. You can read its description to find out more, then click the Code or Download button, and add a copy of it in your own LearnToMod account. Installing Mods Once you have downloaded the mod that you want, it’s time to install it into your game so that you can begin using it. Each mod may have a unique installation guide associated with it, but for most popular mods, you can use a tool called Minecraft Forge for help with installation. To install a Minecraft mod, follow these steps: Make a backup file of your Minecraft world. It’s important to save your existing world in case the something goes wrong with the new mod. This will allow you to have access to your original folder and preserve your original game, settings, and creation. Download Minecraft Forge. This third-party tool will help with easily adding mods to your different Minecraft worlds. Next time you launch the game, you should have a new profile entitled Forge. Logging into this will provide access to a new menu option called Mods, where you can apply them to your new gameplay. Download compatible mods. Make sure you have your newly downloaded add-ons ready to be accessed. We will need to move these to a new folder for complete installation. Install mods by copying the files into the /mods/ folder. Select your mods and run them. Once you run your mods, you will see them applied directly to your game! Customizing Other Players Mods An extra challenge for you is to try to figure out how to add something neat to a mod that someone else has made. Follow these steps: Test the mod to see what it does, and compare that to what it is supposed to do. Read the code, and draw it out. (It’s sort of the reverse step of designing code.) Design one addition to the code and figure out where it should go (for example, in its own function or inside another function). As you add code, test, test, test! After you have remixed the mod, share it with everyone else on the LearnToMod site to see how other coders can take it even further.
View ArticleArticle / Updated 10-04-2019
GitHub has a feature that removes the need to host our app outside of GitHub, which can reduce the number of moving parts when extending GitHub. This feature is called GitHub Actions. GitHub Actions is one of the newer, most exciting features of GitHub. At the time of writing, it's still a beta feature. GitHub Actions makes it possible to create custom workflows on GitHub. It lets you implement custom logic to respond to events on GitHub. In the previous section, we wrote a GitHub app to do that. With GitHub Actions, we don’t need to build a custom app. We can build workflows using existing actions that others have written, or we can write our own actions that run in a Docker container. Hopefully, by the time you read this, GitHub Actions are generally available. But in the case they’re still in beta, email [email protected] and ask to be in the GitHub Actions beta program. To demonstrate GitHub Actions, consider the following scenario. When you merge a pull request in your own repository, the branch for the pull request sticks around. GitHub presents a button to delete the branch, but a lot of people forget to do so and leave these branches sticking around. Not deleting the branch isn’t necessarily a bad thing, unless you’re the type of person that likes things to be tidy and cannot stand having a branch that’s no longer needed lingering around. If you are that type of person, you’re in luck. Jesse Frazelle is also that type of person, and she wrote a GitHub Action you can use in your own workflows. Her blog post, “The Life of a GitHub Action” is a good read to understand more details about the life cycle of a GitHub action. Creating a GitHub action workflow If you’ve been accepted in the GitHub Actions beta program or it has become more widely available, you should see an extra tab at the top labeled Actions when you view a repository. The following steps walk through the process for creating a GitHub action workflow for a repository. Click the Actions tab to see your existing workflows. If you don’t have any workflows yet, you see a big green button to Create a new workflow, as shown. Click the Create a new workflow button to bring up the workflow designer view. This visual designer lets you create workflows and connect them to actions. Workflows are stored in a file named main.workflow in the .github directory of your repository. There's also an editor view if you prefer to build your workflows with text. Switch to the text editor and paste in the following text: workflow "on pull request merge, delete the branch" { on = "pull_request" resolves = ["branch cleanup"] } action "branch cleanup" { uses = "jessfraz/branch-cleanup-action@master" secrets = ["GITHUB_TOKEN"] } If you switch back to the visual designer, it should look something like the following figure. Click the Start commit button to commit this new main.workflow file to your repository. Testing a GitHub Action After you commit this file to your repository, the workflow is active. You can test it by creating a new pull request and then merging it. A few seconds or minutes later, you should see that the pull request branch was deleted. An update on the pull request says something like github-actions bot deleted the branch-name branch 1 minute ago You can create pretty useful and complex workflows using existing actions. You can install actions from the GitHub Marketplace or reference them by pointing to a repository that contains an action. You can also write custom actions. How to do that is beyond the scope of this article, but you can look at the action that Jesse wrote to get an idea of what it takes. With GitHub Actions, you can personalize GitHub to your tastes in nearly unlimited ways.
View ArticleArticle / Updated 10-04-2019
Apps on GitHub let you extend GitHub in powerful ways. GitHub apps are web applications that can respond to events on GitHub. These event subscriptions are called web hooks. When an event occurs on GitHub that the app is interested in, GitHub makes an HTTP request to the app with information about the event. The app can then respond to that event in some manner, often resulting in a call back to GitHub via the GitHub API. Here, you walk through building a simple GitHub App that brings a bit of levity to your issue discussions. There’s an old meme in the form of an animated gif with a little girl who asks the question, “Why don’t we have both?” The typical application of this meme is in response to a question that presents a false dichotomy. In other words, when someone presents a question with two choices, someone might respond with this image. Introducing GitHub's Probot GitHub apps are web applications that need to listen to HTTP requests. You have a lot of important details to get just right when building an HTTP request, such as what is the format of the data posted to the app? All these details can be confusing and time consuming to get correct when building a GitHub app from scratch. Knowing where to start is difficult. GitHub’s Probot framework comes in handy when getting started with a GitHub app. Probot handles much of the boilerplate and nitpicky details of building a GitHub app. It is a framework for building GitHub apps using Node.js. It provides many convenience methods for listening to GitHub events and for calling into the GitHub API. Probot makes it easy to build a GitHub app, but it doesn’t solve the problem of where to host the app. Hosting the GitHub app A GitHub app can take many forms. It could be a Node.js app running in Heroku, an ASP.NET Core app running in Azure, a Django app running in Google Cloud — it doesn’t matter. It just needs to be persistent and available via the public Internet so that GitHub can reach it with event payloads. Setting all that up can be time consuming, so for our purposes, we use Glitch to implement a quick and dirty GitHub app. Introducing Glitch Glitch is a hosting platform for web applications that removes a lot of the friction with getting a web app up and running. Any app you create in Glitch is live on the web from the beginning. You don’t have to think about how you plan to deploy the code because any change you make is auto saved and automatically deployed. Glitch focuses on the community aspect of building apps. Every file can be edited by multiple people in real-time, in the same way you might edit a document in Google Docs. And every project can be remixed by clicking a button. This encourages a lot of sharing of code and learning from each other, which comes in handy when we build our own GitHub app. Before you continue, make sure to create an account on Glitch if you don’t have one already. Create a Probot Glitch app After you have a rough understanding of Probot and have a Glitch account set up, you can build a Probot app on Glitch. Glitch lets you remix existing apps, and the good news is Glitch already has a Probot app that you can remix. This means you can create your Probot app with one click and a few customizations. To create your app, type the following URL into your browser: https://glitch.com/edit/#!/remix/probot-hello-world. This command creates a brand new app in Glitch based on the probot-hello-world example with a randomly generated URL, as shown. As you can see, my app is called candy-chaffeur. The left pane shows the list of files in your application. The README.md file contains step-by-step instructions to set up the hello-world Probot app. Follow these instructions carefully to set up the sample GitHub app. One of the instructions mentions running the following command: cat my-app-name.2018-06-20.private-key.pem | pbcopy The purpose of the previous command is to copy the contents of your private key file into the clipboard so that you can paste it into the Glitch file. However, this command works only on a Mac. On Windows, you would run the following command (changing the file name to match yours): type my-app-name.2018-06-20.private-key.pem | clip When you are done, install the app on a repository that you own and then create a new issue. A few seconds later, you should see a comment created by your bot with the words “Hello World!”. Customize the app After you create a Probot app in Glitch and install it on GitHub, you can customize how the app responds to issue comments. When you followed the steps in the README, you subscribed to issue events. These events do not include when new comments are created. We need to also subscribe to issue comments. See a list of your apps here. Click the Edit button to navigate to your app. Then in the left navigation, click Permissions & events and scroll down to the Subscribe to events section. Check the Issue comment check box, as shown. Click the Save changes button at the bottom to complete these changes. Now you need to change your Glitch app to listen to new issue comments and respond appropriately. Edit the index.js file and replace the contents of the file with the following code: module.exports = (app) => { // Listens to new issue comments app.on('issue_comment.created', async context => { // Retrieves the comment text const message = context.payload.comment.body if (message.indexOf(' or ') > -1) { const params = context.issue({ body: '![The why not both girl](<a href="https://media3.giphy.com/media/3o85xIO33l7RlmLR4I/giphy.gif">https://media3.giphy.com/media/3o85xIO33l7RlmLR4I/giphy.gif</a>)' }) // Creates a comment with a markdown image return context.github.issues.createComment(params) } }) } This code listens to new issue comments, looks for the word or surrounded by spaces, and if it finds it, creates a new comment with a markdown image. This approach is not very smart. Try this slightly better approach. It would be even better if we could employ some artificial intelligence (AI) in the form of natural language processing (NLP). But that's beyond my skillset and out of the scope for this book. Installing the app After you create the app and get it working, others can install the app and use it. You can install it by going to your GitHub apps list and clicking the big green Install button in the top right. Install it on a repository and then go create a comment on an issue in the repository that asks a question with the word or in it. An example interaction is shown here.
View ArticleArticle / Updated 10-04-2019
GitHub hosts and sponsors several conferences throughout the year. Many kinds of events focus on software developers. They range from the informal meet-up or user group to the structured multiday international software conference. See which GitHub events are upcoming. This page lists GitHub’s own upcoming events, as well as events that it sponsors. Meet-ups and user groups for software developers A meet-up or user group is an informal gathering of developers to cover a topic. Many are scheduled monthly and hosted by a local company or software interest group. These events tend to be a great way to dip your toe into software developer events. They tend to be small gatherings of people in your area. Each month features a local speaker who talks about a topic relevant to the group. (Some user groups and meet-ups bring in speakers from outside on occasion, but typically they focus on highlighting local speakers.) Meetups.com is a great way to find a meet-up relevant to your interests. You can search for meet-ups by location on meetups.com. For example, check JavaScript meet-ups for the Seattle Washington area. A few examples of local meet-ups include Brooklyn JS: Brooklyn, New York .NET São Paulo: São Paulo, Brazil SD Ruby: San Diego, California Regional conferences for software developers A regional conference is a relatively small conference where speakers and attendees outside of the local area are welcome, but the focus of the conference is to provide a venue for local developers and speakers to connect and present their work. Often these conferences are one or two days. Many will have a single track of talks, or two at most. They’re a step up in size and structure from a meet-up and typically occur once a year, as opposed to monthly. Some of them often offer workshops either before or after the conference. These workshops usually cost extra, but offer more in-depth training for a specific skillset or technology. For example, you can often find a full-day workshop dedicated to improving your Git skills. If you can afford it and find one that teaches a skill you want to improve, workshops are often worth the investment. Some great examples of local conferences include .NET Fringe: Portland, Oregon JSConf Hawaii: Honolulu, Hawaii GoRuCo: New York, New York Hackathons A hackathon is very different from a conference. While conferences focus more on having speakers teach a topic through a talk, hackathons focus on building. A hackathon is an event that may last several days where groups of people form teams to work together collaboratively write code to solve some sort of problem. The usual format is some sort of problem is presented and teams are tasked with building a solution. The technology stack they may use is often dependent on the focus of a hackathon. For example, a mobile development hackathon will require that attendees build a mobile app to solve the problem. Hackathon is a portmanteau of the words hack and marathon. Many take the marathon aspect to the extreme by having teams work around the clock with very little sleep. Others try to create a balance of working hours and sleeping hours by forcing contestants to leave the workspace. Hackathons are often very inclusive of beginners. For example, SD Hacks is open to any high school or college student in the world who is 18 or older. You don’t always have to have a team when you sign up for a hackathon. Often, you can find one when you get there. It’s best to check out the FAQ for the specific hackathon to learn more about the details. One of the largest, worldwide hackathons is targeted to college students. It’s the Microsoft Imagine Cup. Winners of the Imagine Cup can win mentorship from Satya Nadella (Microsoft CEO), travel to the world championship, and receive Azure grants and $100,000. Attending hackathons can be a great way to be introduced to a new technology. The goal isn’t to design and implement a final product, but rather to hack together bits and pieces to make progress on an idea that you have. The end product should look more like a prototype than a polished application. Often times, hackathons will have mentors that know a particular technology that you can learn from. Think of a hackathon as a dedicated time and place to experiment and learn. Though attending a formal hackathon will provide you with mentors, a space, and sometimes prizes, you can also always get together with friends to do one on your own, too! Just pick a time, place, and goal and try to hack together a prototype of an idea you have! It doesn’t hurt to give it a shot! Major conferences for software developers A major conference tends to be large and draw attendees from all over the country, if not the world. Attendee counts tend to be in the thousands. Attending one of these conferences requires a bit more up-front planning. It’s not just arranging your flight and hotel. These conferences tend to have many tracks, so for any given time slot, you may have to choose which talk you want to see from five or more talks at the same time. Like a regional conference, major conferences often offer an array of workshop offerings before or after the conference. In addition to workshops, many also include hands on labs during the conference. Labs are usually included in the price of the conference and offer a great chance to actually try out the technologies you’re hearing about at the conference. Many of these conferences are thrown by large technology companies, such as Microsoft’s Build conference and Apple’s WWDC. A few examples include Oscon: Portland, Oregon Build: location changes each year WWDC: San Francisco, California GitHub Universe GitHub Universe is the flagship conference for GitHub. It is held yearly in the city where GitHub’s main headquarters resides, San Francisco, California. The conference is usually held in the fall around October or November. As GitHub describes it, GitHub Universe is a conference for the builders, planners, and leaders defining the future of software. This conference is where GitHub typically makes its biggest announcements of the year during the keynotes. It attracts well-known speakers from prominent software companies. In 2018, the conference had around 1,800 attendees who attended three tracks of talks. The cost of the conference is reasonable, around $99 per person, or $199 if you also attend the workshops. GitHub Satellite The GitHub Satellite conferences are an offshoot of GitHub Universe. They bring a GitHub universe-style conference to locations around the world. Held once a year, past Satellites have been held in places such as Berlin, Tokyo, and London. GitHub Constellation GitHub Constellation is a series of small community events held multiple times a year around the world. These events focus on the local community and often feature speakers local to the area. They are typically free and occur over one or two evenings. They’re not all-day conferences like Satellite and Universe. Git Merge Git Merge, is a conference sponsored by GitHub, but focused on the Git version control tool and the people who use it every day. As GitHub puts it, Through technical sessions and hands-on workshops, developers and teams of all experience levels will find new ways to use, build on, and scale Git. The conference features a preconference hands-on day of workshops focused on a range of Git topics. This conference is a great one to learn more about Git and to improve your Git skills.
View ArticleArticle / Updated 10-04-2019
Many tools extend or integrate with GitHub. A good way to find tools to use with GitHub is the GitHub Marketplace. The GitHub Marketplace is a directory of tools and apps grouped in the following categories: Chat Code quality Code review Continuous integration Dependency management Deployment Learning Localization Mobile Monitoring Project management Publishing Recently added Security Support Testing Utilities The Marketplace is a great way to find an app for every situation on GitHub. Purchasing or installing apps through the Marketplace has two key benefits: ease of billing and installation and the vetting process. Billing made easy in the GitHub Marketplace For apps in the GitHub Marketplace that require payment, installing the app through the Marketplace is a streamlined flow because you can use your GitHub payment info. That way, you’re not dealing with five different payment providers when purchasing five different apps to use with GitHub. If you have a free GitHub account, you may not have setup your payment information in GitHub. To set up a payment method, click your avatar in the top right corner of GitHub.com and click Settings. From this page, click Billing from the list on the left side. Here you can click the Add payment method, as shown. The GitHub Marketplace vetting process One of the benefits of installing an application from the Marketplace is that these apps must meet certain requirements before GitHub will list them in the Marketplace. The requirements help ensure a higher standard of quality and security with the apps; helping ensure that these apps are useful (no Fart apps) and are secure. At the moment, a GitHub Action doesn’t require any review to be listed in the GitHub Marketplace, which means installing an action from someone you don’t know may be a bit riskier. An app must meet four main categories of requirements before being listed in the Marketplace: User experience: This brief set of nine requirements includes things like the app must have a certain number of users and installs already. It also includes some requirements around the behavior of the app, such as the app must include links to documentation, it can’t actively persuade users away from GitHub, and it must provide value to customers. Brand and listing: This set of guidelines and recommendations center around the branding of your app and your app’s listing. Every app must include its own logo. If the app makes use of GitHub’s logo, it must follow GitHub’s Logos and Usages guidelines. The brand and listing section on the Requirements page has links to further logo and description guidelines. As you can see, GitHub takes listing apps in the Marketplace seriously. Security: GitHub will conduct a security review of apps before listing them in the marketplace. A separate document with security best practices and more details on the security review is available. Billing flows: Every app in the Marketplace must integrate billing flows using the GitHub Marketplace webhook event. This requirement ensures that people can purchase a subscription to your app and cancel that subscription with the payment info they already have on file with GitHub. It also ensures that any changes made through GitHub are reflected immediately on the app’s own website. How to list your app on the GitHub Marketplace Getting your own app listed in the Marketplace may increase the potential audience for your application. However, listing your app requires that it meets GitHub’s requirements and receives approval. To start the process of listing an app, click the Submit your tool for review link at the bottom of the Marketplace landing page or navigate to the New page of the GitHub Marketplace in your browser. This page lists your applications that you can turn into Marketplace listings, as shown in the following figure. Click Create draft listing next to the app you want to list on the Marketplace to start the process. This takes you to a page where you can enter a name for the listing and choose one of the marketplace categories for your app, as shown. If you save the draft of your listing but happen to close your browser, you can get back to your listing in your browser. After you fill in these details, click Save and add more details to save a draft of your listing and move on to the next set of steps, as shown. These steps include Add your contact info. This info is a set of three email addresses: Technical lead, marketing lead, and finance lead. Fill out your listing description. This area is where you fill out more details, such as a product description, logo, and screenshots. The information here will be displayed on the Marketplace page for your application. Set up plans and pricing. This is where you can set up one or more pricing plans, including the option to create a free plan, a monthly plan, or a monthly per user plan. You can also specify whether a plan includes a 14-day free trial. Set up webhook. This step allows you to specify a URL where Marketplace events will be sent via an HTTP POST request. The webhook will send you information about events, such as purchases, cancellations, and changes like upgrades and downgrades. Accept the Marketplace Developer Agreement. In order to list your app in the marketplace, you have to accept the Marketplace Developer Agreement. Click the Submit for review button. GitHub employees will review your submission to make sure it meets the requirements to be listed in the Marketplace. Consider common apps to install Here are some of the most common and useful GitHub apps that you may want to consider installing. Continuous integration Continuous integration (CI) apps automatically build and test your code every time you push it to GitHub. If you have a CI app, such as AppVeyor, installed on your repository, you will see the status of the check at the bottom of each pull request, as shown. If you’re the owner of the repository, you can also specify whether checks have to pass before the branch can be merged into the master branch. Just head into the Settings tab. If you have any rules on the master branch already, click edit; otherwise, click Add Rule. From there, you can scroll down and select Require status checks to pass before merging. Code quality Code quality apps automatically review your code with style, quality, security, and test-coverages checks. These apps can be really useful for ensuring your code is kept to a high standard. With well-styled and quality code, you’re less likely to introduce or miss bugs. For example, if you require that all curly braces are on new lines and indented with one tab per nested brace, you’re likely to be able to spot when something is incorrect. For example, Rubocop checks the style of your Ruby code while it’s building and provides you with style feedback, such as casing for method names. Another useful type of code quality apps is the code coverage apps, such as Codecov. Shown in the following figure, Codecov and apps like it comment on pull requests with how much of the code is covered by test scenarios, helping to ensure your code remains well tested. Localization Localization apps can make publishing your app in many languages easier. For example, the Crowdin app will link your repository to a Crowdin account where people from around the world can help you translate your documentation and any written words in your software (for example, on buttons or in menus). With more than 20,000 people contributing to translations, the Crowdin app will automatically open a pull request on your repository with new translations when it’s reached a threshold of accuracy, still giving you a chance to review and merge. For open source projects, Crowdin is free! Monitoring Monitoring apps help measure performance, track errors, and track dependencies in your code. For example, Greenkeeper is a real-time notification app that gives you updates and changes for JavaScript dependencies. This figure shows Greenkeeper in action, opening a pull request to update eslint to the latest version. Dependency management Modern app development today is heavily dependent on public package managers for pulling in and managing dependencies. A typical app may have dozens, if not hundreds, of dependencies. Tracking which of these dependencies are up-to-date can be difficult. Github apps like Dependabot check to make sure your dependencies are up-to-date and submit pull requests to update the ones that are not. Sometimes you don’t want all your dependencies on a public package registry. For example, if you work in an enterprise, you may have internal packages that should remain private. A private package registry tool, such as MyGet, is useful in this case. MyGet works with NuGet packages and lets you set up a policy where pushes to a particular branch will initiate a build and the branch will be deployed to a custom NuGet feed hosted on MyGet. Testing Testing software is an important part of the software development lifecycle. Good testers develop test plans to ensure that testers do a good job of testing each release. Managing test plans and keeping track of the status of test runs is an important part of quality assurance. The TestQuality app integrates with GitHub to helping developers and testers create, run, coordinate, and monitor software testing tasks. Learning A great way to learn GitHub is to install the GitHub Learning Lab from the Marketplace. Installing Learning Lab install a bot that walks you through interactive lessons on how to use GitHub through a set of tasks that you complete. The lab is free and lets you take as many courses as you like at your own pace.
View Article