Summary

In this chapter, we learned about the steps we can follow to create packaged released of our applications. We discussed changes we could make to our applications to prepare for a release, as well as the various licenses we can choose to attach to our application.

We also looked at some of the helpful metadata that we may wish to add to our project, and how to deploy our documentation directly to the Internet using GitHub pages.

Finally, we saw how to create a package in both Java and Python, and how to upload those packages to a release on GitHub. We also discussed the basic steps for uploading a package to the repository for our chosen language.

In the example project for this module, we’ll go through some of the steps for creating our own packaged releases and how to upload them to GitHub.

Review Quiz

Check your understanding of the new content introduced in this chapter below - this quiz is not graded and you can retake it as many times as you want.

--- primaryColor: '#512888' secondaryColor: '#cccccc' textColor: black shuffleQuestions: true shuffleAnswers: true locale: en --- # Preparation When preparing for a release, what is one reason given for **reviewing and reducing dependencies** of our application? 1. [X] Fewer dependencies are easier to manage and install 1. [ ] Dependencies make running om multiple platforms more difficult 1. [ ] Dependencies can store sensitive information 1. [ ] More dependencies make the application more attractive to potential users # Configuration When preparing for a release, what can be done in place of **hard coded variables** to make the software more useable? 1. [X] Allow users to configure the software using a configuration file 1. [ ] Use encrypted storage for settings outside of the code 1. [ ] Store data in the cloud 1. [ ] Run the software on multiple platforms # No License In the United States, if we choose not to explicitly attach a license to our application, it will have what license by default? 1. [X] Copyright to the Author 1. [ ] Public Domain 1. [ ] GNU General Public License 1. [ ] GitHub Default License # Metadata A software release may also include **metadata**, which is best described by which of the following statements? 1. [X] Data about the release, such as version, author, and title 1. [ ] Data about the software development methodology used 1. [ ] Data about the time zone used when creating the software 1. [ ] Data about the current users of the software # Documentation One feature of GitHub that allows us to publish documentation directly to the web is known by what name? 1. [X] GitHub Pages 1. [ ] GitHub Actions 1. [ ] GitHub Codespaces 1. [ ] GitHub Classroom # Semantic Versioning Which of the following version numbers accurately follows the **semantic versioning** format? 1. [X] 1.2.3 1. [ ] 2021alpha2 1. [ ] Ubuntu Focal Fossa 1. [ ] 8.7.6.4.5.3 # Java Releases Java releases are typically stored in what type of file? 1. [X] JAR File 1. [ ] EXE File 1. [ ] WHL File 1. [ ] DMG File # Python Releases Python releases are typically stored in what type of file? 1. [ ] JAR File 1. [ ] EXE File 1. [X] WHL File 1. [ ] DMG File # Java Repository Which package repository is discussed as a possible location to publish a Java application? 1. [X] Maven Central 1. [ ] PyPi 1. [ ] StackOverflow 1. [ ] Apache # Python Repository Which package repository is discussed as a possible location to publish a Python application? 1. [ ] Maven Central 1. [X] PyPi 1. [ ] StackOverflow 1. [ ] Apache