Version 10.1 (released August 6th, 2018)
Panorama X 10.1 is a major release with a long list of changes. Here is a quick list of the major new features.

- Summary tables
- Crosstabs
- Charts
- AppleScript support (scriptable from other applications)
- Construction dialog for custom reports
- Variable height printing
- Multiple page printing
- Full documentation for printing
- Dynamically customizable tab order
- Data sheet fields can now be configured as clickable buttons

For more information about these major features, as well as many more minor new features, performance enhancements and bug fixes, consult the list below.

- The Summary Workshop wizard is a dynamic tool for quickly summarizing, analyzing and charting large amounts of data. The workshop can rapidly categorize the information in a database and calculate totals, averages, counts, minimum/maximums and standard deviation. Summaries can be displayed in tabular or chart formats.

- Summary tables can be reconfigured on-the-fly, independently of the main database. For many applications, summary tables are much faster and easier to use than summary records.

- In addition to tabular display, the Summary Workshop can also display various kinds of charts. Simply choose the type of chart you want to see from the Display popup menu.

- The Crosstab Workshop wizard is a tool for two dimensional summarizing, analyzing and charting large amounts of data. The workshop displays a two dimensional grid summarizing the information in a database by multiple categories, for example spending by vendor vs. quarter, as shown here:

- Like summary tables, crosstabs can be reconfigured on-the-fly, without making any changes to the main database.

- Both the Summary Workshop and Crosstab Workshop allow you to set up favorite configurations. To instantly pull up a previously saved favorite, just click on the star and select it from the pop-up menu.

- Both the Summary Workshop and Crosstab Workshop allow you to easily reveal the underlying raw data behind any summary value. Simply right click on any summary or crosstab cell and choose Select Original Data.

- Like the Summary Workshop, the Crosstab Workshop can also display various kinds of charts. Simply choose the type of chart you want to see from the Display popup menu.

- All charts are interactive – when you hover over them a label appears showing the data value.

- Charts can optionally display spike lines to make it easier to see where each value falls on the axes.

- Charts can zoom in and out, pan, and reset the zoom.

- In addition to using the Summary Workshop and Crosstab Workshop, you can also embed summary tables, crosstabs and charts into Panorama forms (see summarytable(, crosstab( and chart(. You can also put multiple tables on a single form, multiple charts, any combinations you want. All of these elements remain fully interactive when used in a form. Here is an example with both a crosstab table and a chart combined onto a single form.

- Data sheet fields can now be configured as clickable buttons. For example, clicking on a field can cause a value to toggle on or off, or a pop-up menu can appear immediately when clicking. See Automatic Field Code to learn how to set this up.

- Panorama now allows the tab order to be customized dynamically on the fly in both the data sheet and in forms (see Custom Tab Order). When the tab key is pressed, your code can direct Panorama to automatically skip to different fields based on what data has been entered. Here is an example that skips from the City field to the Country field if a zip code is typed into the City field (after looking up the city and state from the zip code). If a city name is typed in, the Tab key skips to the State field, as normal.

- Panorama X is now controllable from AppleScript with the `run code` verb command. See Scripting Panorama X with AppleScript for details. Here is an example of an AppleScript that displays a list of the fields in the current database.

- Panorama X documentation now includes full documentation for custom reports, including headers & footers, margins, multple columns & multiple pages, and printing summaries. See Reports, Report Tile Object, Automatic Report Construction, Tiles in Action, Custom Report Margins, Custom Report Headers and Footers, Printing Multiple Page Records, Variable Height Records, Printing Multiple Column Reports, and Printing Summary Information.

- Added new dialog in the Construct Menu to assist with building custom reports with tiles. See Automatic Report Construction for details on this new dialog.

- Printed reports with expandable (or expand/shrink) text objects (text editor/text display) now correctly print variable height records. Only plain text is supported, not rich text. Here is an example of a form with both expandable text and images side by side.

- Fixed problem that could occur when printing forms with extra data tiles (Data[2], Data[3], etc). See Printing Multiple Page Records.

- Implemented the extrapages( function, which allows multiple data tiles to be printed selectively. See Printing Multiple Page Records.

- The BackDrop and Overlay tiles now print correctly (see Custom Report Headers and Footers).

- Printing reports now works correctly even when objects on the form are grouped (including tiles).

- Panorama 6 had two report tiles called Table Header and Table Footer. In Panorama X 10.0, these were renamed to Column Header and Column Footer, but this wasn’t transitioned properly from Panorama 6. In Panorama X 10.1, these are now renamed again to Data Header and Data Footer (see Printing Multiple Column Reports). When a Panorama 6 database is imported, any old Table Header and Table Footer tiles will be converted. However, any Panorama X 10.0 databases containing these tiles, or Column Header/Column Footer tiles, must be manually updated to use Data Header/Data Footer.

- The Panorama Video Training wizard has a new pop-up menu that allows selection of videos by their recording year. This facilitates finding new videos you haven’t seen before. (By the way, Panorama 10.1 includes four new videos, covering data analytics with the Summary and Crosstab workshops.)

- Multiple text editor/display objects on a form now all update simultaneously when data changes, for example when advancing to the next record. You will no longer see a “ripple” as different objects update, it’s all instantaneous now. Problem was caused by an Apple bug, tracked down with assistance from an anonymous (by request) Apple engineer at the WWDC 2018 labs.

- When entering data, importing text, or converting text to numbers, strip non-numeric characters before converting text into numbers, so that currency symbols, etc. are ignored. In other words, you can now import numbers like $3,456.12 without a problem.

- Clicking on a database name in the Memory Usage window triggers a popup menu that allows you to bring any window in that database to the front. If the database doesn’t have any open windows (it’s “secret”), the popup menu will contain “Open Data Sheet”, which will allow you to open the data sheet for that database.

- Fixed a problem that could occasionally cause Panorama X to lose permanent variable values. This could also cause Panorama to lose favorite settings, since they are stored using permanent variables.

- Image Display objects now layer properly in Z-order. This means that now you can place other objects on top of images, for example buttons or text. This problem was caused by an Apple bug, tracked down with assistance from an anonymous (by request) Apple engineer at the WWDC 2018 labs.

- When a form event occurs, Panorama now jumps directly to a predefined label in your event handling code (see Implicitly Triggered Procedures). (Form events include opening the form, bringing the form to the front, and resizing the form.) This is much faster than the older method, and incurs no performance penalty at all for events that you don’t want to handle. Panorama now allows the event handling code to be moved to a separate named subroutine, for easier editing and debugging. Also, up to now the techniques for writing event handling code were undocumented, now they are included in the help system. Here is what form event code looks like in the Form Properties panel.

- Implicitly Triggered Procedures like `.Initialize`, `.ModifyRecord`, etc. are now documented in the Panorama X help system, so you no longer need to refer back to the Panorama 6 documentation for information about these procedures.

- The Text Editor Object now allows you to set up multiple event actions simultaneously by inserting labels into your event handling code. For example, you can have code that handles both starting and finishing editing, before you could do one or the other but not both. Here is an example that uses this new feature to time how long the user spends editing a field (like a stopwatch).

- Added new CloseDatabase statement, which makes it easy to close any database (not just the current database). This is especially handy for closing secret databases.

- OpenFile “+database” now works even if the specified database isn’t already open.

- If a secret window is active, the info(“windowname”) function now returns the secret window instead of the name of the currently visible topmost window. This now works the same as it did in Panorama 6.

- New scopes( function returns a list of scopes that a variable exists in (local, fileglobal, global, etc.)

- New scopevalue( function allows a formula to access a variable at any scope, even if it would normally be “hidden” by other variables with the same name. There were already functions to do this (localvalue(, etc.) but the scopevalue( function allows the scope to be determined at runtime without needing an execute statement.

- New function htmlcolorarray(, generates a text array of HTML colors that gradually transition from one color to another.

- Fixed problem of dialog sheet jumping to wrong window when using Print, Page Setup, and Save As commands.

- The monthmath( function now works properly with negative delta values.

- Fixed the time( function so that it will correctly handle times from 12:00 to 12:59 (with no am/pm, so should be in 24 hour format).

- The Morph Field Dialog now works correctly when the «Current Field» option is used.

- The constructlistmatrix statement now works even if the termplate contains a line of spaces (it simply ignores such a line, just like a completely blank line).

- The View Organizer context menu (right click) now includes a Move to Trash option. Also, the background is a darker gray, so the trash can is more visible.

- A Web Browser Object can be configured for literal mode or formula mode. In literal mode, fields and formulas can be substituted into the text. In this mode, Panorama thinks any text inside { and } characters is a Panorama formula. However, this is a problem if you have inline CSS, which also uses { and }, or embedded JavaScript, which also uses curly braces. These features were not working because Panorama was trying to merge in the formulas. The best solution is really to switch to formula mode. However, Panorama now checks for errors in merged formulas, and if it finds any, it disables all field and formula merging. In other words, if you have inline CSS or JavaScript that uses curly braces, merging will not work. (In previous versions it was the opposite – merging would work but the CSS or JavaScript would not work.) If you need to merge in data AND use inline CSS or JavaScript, use formula mode.

- Web Browser Object has a new option, RecalcAfterResize. This can only be enabled/examined using the object blueprint. When enabled, the object’s formula will be recalculated when the object changes size. This can be useful if the formula uses the `objectinfo("rectangle","«»")` to make adjustments based on the size of the object. Also, this option is usually enabled when displaying charts, the chart( function will automatically adjust the size of the chart if this is enabled.

- The objectinfo( function can now easily access information about the object that is currently being displayed. Use the name `«»` to refer to this object. This allows this formula to automatically adjust depending on the object properties, for example the width or height. Note: This new option works with Text Display, Image Display, Web Browser, Segmented Button and Tab Panel objects.

- The Text Editor Object prompt text feature is now automatically disabled when the horizontal scroll bar is enabled. (Perhaps some will debate whether this is actually a “fix”, but this is a non-standard feature, I’ve never seen another application with prompt text and a horizontal scroll bar, so I don’t think actually making this work, which will require extensive coding, is worthwhile.)

- The DefineHotKeys statement has been fixed so that it works with global variables.

- The ImportDictProcedures statement was completely broken, it was attempting to create a Panorama 6 style dictionary. Now updated for Panorama X and works as documented.

- The SetFileVariable statement was incorrectly setting itself up as a synonym for SetFileGlobal. Because of this, the documented behavior of SetFileGlobal allowing the first parameter to be omitted did not work. Note: This fix won’t actually take effect until any code that uses this statement is recompiled with Panorama X 10.1 or later.

- The SetFileGlobal and SetWindowGlobal now properly handle the last parameter (the value parameter).

- The FormObjectBlueprint statement now allows you to omit the first two parameters, database and form. This is useful if you want to access the blueprint for a (possibly modified) object in the current window if the current window is a clone window. Before, you could not get this blueprint, only the unmodified blueprint in the underlying form.

- Live menu definitions now accept carriage returns and linefeeds interchangeably (they used to accept only carriage returns).

- Fixed error message that would come up when clicking on an empty row in the View Organizer wizard.

- Some statements would not work properly if given a formula that consisted of a single variable name, especially some set, assign and define statements. These now work when used with a “bare” variable.

- Panorama 6 allowed reloopif as an alternate spelling of repeatloopif, and now Panorama X allows this also.

- The Find/Select Dialog now strips defaulttext( out of numeric and date search formulas, for example `Debit > val(defaulttext("0","0")` now becomes simply `Debit > 0`. The defaulttext( function was used to prevent errors if a search item was left empty. Now this function is replaced in advance with the actual value, or the default value if an item is left empty. As a user you won’t usually see this change, but performing this replacement in advance makes the search run faster, and if the recorder is turned on, the recorded code is a lot easier to understand (you can see the difference in recorded code). This code can also appear in chart(, crosstab( and summarytable( functions, which also benefit from the cleaner code.

- When opening a View-As-List form, Panorama X will no longer crash (actually, ObjC runtime error) if the Data tile has negative height.

- The DropImagesFromFinder statement now works correctly when the currentrecord option is set to yes.

- The DropImagesFromFinder statement now ignores clicks on the drag receiver object, instead of stopping with an error.

- Now correctly determines local system date format even if system date format is set to use four digit year format.

- The ActiveGrid statement now checks to see if the active form is set for fileglobal or windowglobal variables. Any variables it creates will match the type used by the form (previously it would always create fileglobal variables, so it couldn’t be used with clone windows).

- In the Site License wizard, added Continue Free Trial button to the New Account panel. Hopefully this will discourage users from starting a new account when they really want to continue using the free trial. Also clarified help language about not needing to create an account until after the trial is finished.

- Fixed confusing typo in the Form Object Blueprint dialog.

- In the Numbers documentation page, see also links for eulersconstant(, pi(, nth( and scientificnotation( now work correctly.

- Panorama X will now run correctly on a case-sensitive file system.

- Updated documentation with user submitted corrections since Dec 2017, including Michael Kellock, David Thompson, Gary Yonaites, Craig McPherson, Thomas Cooper, Eric Werner, Kurt Meyer, and Bruce de Benedictis.

Brand new features implemented in this release (features that were not included in Panorama 6):

- chart( -- The chart( function converts a table of data into an HTML page with a chart (bar, line, pie, etc.).
- closedatabase -- The closedatabase statement closes a specified database.
- crosstab( -- The crosstab( function converts information in a database into a crosstab table (tab delimited text).
- crosstabdatabaseselectoriginal -- The crosstabdatabaseselectoriginal statement selects original data corresponding to a cell in an exported crosstab database.
- crosstabpopup -- The crosstabpopup statement handles a click on a crosstab text list.
- crosstabselectoriginalformula -- The crosstabselectoriginalformula statement returns the formula that will select the original data associated with a crosstab cell.
- formcleanview -- The formcleanview statement cleans up extraneous NSView objects in the current form.
- groupdatepattern( -- The groupdatepattern( function converts a number representing a date into text in a special format for use with the summarytable( and crosstab( functions. The function uses a pattern to control how the date is formatted (see Date Patterns).
- htmlcolorarray( -- The htmlcolorarray( function generates a text array of HTML colors that gradually transition from one color to another.
- refreshcrosstabdatabase -- The refreshcrosstabdatabase statement refreshes a crosstab database.
- refreshsummarydatabase -- The refreshsummarydatabase statement refreshes a summary database.
- scopes( -- The scopes( function returns the current scope of a variable, as well as any hidden scopes.
- scopevalue( -- The scopevalue( function returns the value of a variable in the specified scope.
- Scripting Panorama X with AppleScript -- embedding Panorama code into AppleScript (allowing Panorama to be controlled from other programs).
- setappleeventvalue -- The setappleeventvalue statement may be used in a procedure that responds to an AppleEvent (this includes AppleScript programs), the statement specifies the value to be returned by the event.
- summarydatabaseselectoriginal -- The summarydatabaseselectoriginal statement selects original data corresponding to a cell in an exported summary table database.
- summaryselectoriginalformula -- The summaryselectoriginalformula statement returns the formula that will select the original data associated with a summary table row.
- summarytable( -- The summarytable( function scans a database to build a text array containing summary breakdown information: totals, averages, etc.
- summarytablepopup -- The summarytablepopup statement handles a click on a summary table text list.

Features implemented in this release that work differently than they did in Panorama 6.

- Automatic Report Construction -- creates a tabular report with columns of data.
- constructreport -- The constructreport statement creates a report in the current form.
- Crosstab Workshop -- tool for two dimensional summarizing, analyzing and charting large amounts of data.
- Custom Report Headers and Footers -- setting up custom report headers and footers.
- Custom Report Margins -- specifying the top, left, right and bottom margins of a custom report.
- Custom Tab Order -- Customizing the tab order in a data sheet or form.
- Implicitly Triggered Procedures -- Procedures that are triggered automatically when the user performs some normal Panorama action are said to be "implicitly triggered."
- Printing Multiple Column Reports -- printing reports with two, three or more columns (for example mailing labels).
- Printing Multiple Page Records -- Panorama can print up to 9 pages for each record in a custom report (for example multi page invoices, etc.)
- Printing Summary Information -- printing a database that has been organized into categories with summary records.
- Reports -- Panorama has a very flexible system for printing custom reports, labels and forms.
- Summary Workshop -- tool for quickly summarizing, analyzing and charting large amounts of data.
- Tiles In Action -- basic rules for using tiles to print custom reports.
- Variable Height Records -- custom reports with different heights for each record.

Features implemented in this release that work exactly the same as they did in Panorama 6.

- extrapages( -- The extrapages( function controls the printing of extra data tile pages.

ALL features that were added or changed in this release:

- Panorama Video Training -- learn how to get the most from Panorama's video training wizard, including finding a video, zooming the video, opening related help topics, and purchasing on-demand training videos.
- arraycommonprefix( -- The arraycommonprefix( function finds the common prefix (if any) of all items in an array.
- Automatic Report Construction -- creates a tabular report with columns of data.
- calendardate( -- The calendardate( function helps in creating monthly calendars.
- chart( -- The chart( function converts a table of data into an HTML page with a chart (bar, line, pie, etc.).
- choosefiledialog -- The choosefiledialog statement displays a modal dialog allowing selection of files or folders.
- closedatabase -- The closedatabase statement closes a specified database.
- collapsetosummary -- The collapsetosummary statement collapses to the next higher summary level.
- Constants -- values embedded into a formula.
- constructreport -- The constructreport statement creates a report in the current form.
- Crosstab Workshop -- tool for two dimensional summarizing, analyzing and charting large amounts of data.
- crosstab( -- The crosstab( function converts information in a database into a crosstab table (tab delimited text).
- crosstabdatabaseselectoriginal -- The crosstabdatabaseselectoriginal statement selects original data corresponding to a cell in an exported crosstab database.
- crosstabpopup -- The crosstabpopup statement handles a click on a crosstab text list.
- crosstabselectoriginalformula -- The crosstabselectoriginalformula statement returns the formula that will select the original data associated with a crosstab cell.
- Custom Report Headers and Footers -- setting up custom report headers and footers.
- Custom Report Margins -- specifying the top, left, right and bottom margins of a custom report.
- Custom Tab Order -- Customizing the tab order in a data sheet or form.
- Date Arithmetic Formulas -- performing calculations on dates, and converting between dates and text.
- Date Patterns -- control how dates are displayed or converted to text.
- datepattern( -- The datepattern( function converts a number representing a date into text. The function uses a pattern to control how the date is formatted (see Date Patterns).
- Dates -- working with dates.
- definehotkeys -- The definehotkeys statement defines one or more Hotkeys.
- extrapages( -- The extrapages( function controls the printing of extra data tile pages.
- filemenubar -- The filemenubar statement creates a custom menu bar or context menu for the current database (see Custom Menus).
- folderpath( -- The folderpath( function converts a Folder ID into the HFS path of that folder.
- formcleanview -- The formcleanview statement cleans up extraneous NSView objects in the current form.
- groupdatepattern( -- The groupdatepattern( function converts a number representing a date into text in a special format for use with the summarytable( and crosstab( functions. The function uses a pattern to control how the date is formatted (see Date Patterns).
- hidethesefields -- The hidethesefields statement hides specific fields in the data sheet, making all others visible.
- hsb( -- The hsb( function creates a color by combining hue, saturation, and brightness components. See Colors.
- htmlcolorarray( -- The htmlcolorarray( function generates a text array of HTML colors that gradually transition from one color to another.
- Implicitly Triggered Procedures -- Procedures that are triggered automatically when the user performs some normal Panorama action are said to be "implicitly triggered."
- import( -- The import( function returns a line or element of imported data. This function works in conjunction with repetitive operations like importtext, arrayfilter(, characterfilter( etc.
- importtext -- The importtext statement imports text into an existing database.
- info("pagesetuporientation") -- The info("pagesetuporientation") function returns the printing page orientation for the current database.
- info("pagesetuppaperheight") -- The info("pagesetuppaperheight") function returns the printing paper height for the current database.
- info("pagesetuppaperwidth") -- The info("pagesetuppaperwidth") function returns the printing paper width for the current database.
- info("pagesetupscale") -- The info("pagesetupscale") function returns the printing scale factor for the current database.
- Matrix Clicking -- handling clicks in a Matrix Object.
- Matrix Geometry -- customizing the size and geometry of Matrix Object elements.
- Matrix Header and Horizontal Scrolling -- setting up a custom header for a Matrix Object grid.
- menuitem( -- The menuitem( function creates a single menu item (see Custom Menus).
- Modifiable Object Properties -- describes the properties of graphic objects that can be modified by a program (dimensions, color, font, title, etc.).
- Morph Field Dialog -- morphing the contents of an entire field.
- Morph Text Field Operations -- text data morphing operations.
- Numbers -- Working with numeric values in a formula, and converting between numbers and text.
- objectinfo( -- The objectinfo( function returns information about a graphic object: its location, size, color, font, etc.
- Printing Multiple Column Reports -- printing reports with two, three or more columns (for example mailing labels).
- Printing Multiple Page Records -- Panorama can print up to 9 pages for each record in a custom report (for example multi page invoices, etc.)
- Printing Summary Information -- printing a database that has been organized into categories with summary records.
- Quotes -- text constants embedded into a formula
- refreshcrosstabdatabase -- The refreshcrosstabdatabase statement refreshes a crosstab database.
- refreshsummarydatabase -- The refreshsummarydatabase statement refreshes a summary database.
- removedetail -- The removedetail statement removes data records from the current database, leaving only summary records. It can also delete low level summary records, leaving only higher levels.
- removeselected -- The removeselected statement deletes all selected records from the database.
- removeunselected -- The removeunselected statement deletes all unselected records from the database.
- Reports -- Panorama has a very flexible system for printing custom reports, labels and forms.
- revert -- The revert statement reloads the last saved version of the database from the disk.
- runfieldcode -- The runfieldcode statement runs the automatic code associated with the specified field.
- scopes( -- The scopes( function returns the current scope of a variable, as well as any hidden scopes.
- scopevalue( -- The scopevalue( function returns the value of a variable in the specified scope.
- Scripting Panorama X with AppleScript -- embedding Panorama code into AppleScript (allowing Panorama to be controlled from other programs).
- sendaction -- The sendaction statement sends an action message to the Cocoa responder chain.
- setappleeventvalue -- The setappleeventvalue statement may be used in a procedure that responds to an AppleEvent (this includes AppleScript programs), the statement specifies the value to be returned by the event.
- setfileglobal -- The setfileglobal statement sets the value of a fileglobal variable (optionally in another database).
- Summary Workshop -- tool for quickly summarizing, analyzing and charting large amounts of data.
- summarydatabaseselectoriginal -- The summarydatabaseselectoriginal statement selects original data corresponding to a cell in an exported summary table database.
- summaryselectoriginalformula -- The summaryselectoriginalformula statement returns the formula that will select the original data associated with a summary table row.
- summarytable( -- The summarytable( function scans a database to build a text array containing summary breakdown information: totals, averages, etc.
- summarytablepopup -- The summarytablepopup statement handles a click on a summary table text list.
- Text Editor Object -- is used to edit text in a field or variable.
- Text Import -- importing text into an existing database.
- Text List Database Integration -- synchronizing a Text List Object with a database.
- Tiles In Action -- basic rules for using tiles to print custom reports.
- Variable Height Records -- custom reports with different heights for each record.

See Also

- Version 0.1.001 (released July 7th, 2012) -- Summary of Version 0.1.001 (released 7/7/2012)
- Version 0.1.002 (released August 12th, 2012) -- Summary of Version 0.1.002 (released 8/12/2012)
- Version 0.1.003 (released December 2nd, 2012) -- Summary of Version 0.1.003 (released 12/2/2012)
- Version 0.1.004 (released December 10th, 2012) -- Summary of Version 0.1.004 (released 12/10/2012)
- Version 0.1.005 (released December 21st, 2012) -- Summary of Version 0.1.005 (released 12/21/2012)
- Version 0.1.006 (released December 26th, 2012) -- Summary of Version 0.1.006 (released 12/26/2012)
- Version 0.1.007 (released May 1st, 2013) -- Summary of Version 0.1.007 (released 5/1/2013)
- Version 0.1.008 (released May 22nd, 2013) -- Summary of Version 0.1.008 (released 5/22/2013)
- Version 0.1.009 (released July 9th, 2013) -- Summary of Version 0.1.009 (released 7/9/2013)
- Version 0.1.010 (released October 14th, 2013) -- Summary of Version 0.1.010 (released 10/14/2013)
- Version 0.1.011 (released December 6th, 2013) -- Summary of Version 0.1.011 (released 12/6/2013)
- Version 0.1.012 (released August 29th, 2015) -- Summary of Version 0.1.012 (released 8/29/2015)
- Version 0.1.013 (released September 6th, 2015) -- Summary of Version 0.1.013 (released 9/6/2015)
- Version 0.1.014 (released September 14th, 2015) -- Summary of Version 0.1.014 (released 9/14/2015)
- Version 0.1.015 (released September 29th, 2015) -- Summary of Version 0.1.015 (released 9/29/2015)
- Version 0.1.016 (released October 12th, 2015) -- Summary of Version 0.1.016 (released 10/12/2015)
- Version 0.1.017 (released November 11th, 2015) -- Summary of Version 0.1.017 (released 11/11/2015)
- Version 0.1.018 (released December 7th, 2015) -- Summary of Version 0.1.018 (released 12/7/2015)
- Version 0.1.019 (released January 28th, 2016) -- Summary of Version 0.1.019 (released 1/28/2016)
- Version 0.1.020 (released February 15th, 2016) -- Summary of Version 0.1.020 (released 2/15/2016)
- Version 0.1.021 (released February 29th, 2016) -- Summary of Version 0.1.021 (released 2/29/2016)
- Version 0.1.022 (released March 1st, 2016) -- Summary of Version 0.1.022 (released 3/1/2016)
- Version 0.1.023 (released May 27th, 2016) -- Summary of Version 0.1.023 (released 5/27/2016)
- Version 0.1.024 (released June 12th, 2016) -- Summary of Version 0.1.024 (released 6/12/2016)
- Version 0.1.025 (released July 21st, 2016) -- Summary of Version 0.1.025 (released 7/21/2016)
- Version 0.1.026 (released August 29th, 2016) -- Summary of Version 0.1.026 (released 8/29/2016)
- Version 0.1.027 (released September 18th, 2016) -- Summary of Version 0.1.027 (released 9/18/2016)
- Version 0.1.028 (released November 9th, 2016) -- Summary of Version 0.1.028 (released 11/9/2016)
- Version 0.1.029 (released December 31st, 2016) -- Summary of Version 0.1.029 (released 12/31/2016)
- Version 0.1.030 (released February 12th, 2017) -- Summary of Version 0.1.030 (released 2/12/2017)
- Version 0.1.031 (released March 3rd, 2017) -- Summary of Version 0.1.031 (released 3/3/2017)
- Version 0.1.032 (released April 3rd, 2017) -- Summary of Version 0.1.032 (released 4/3/2017)
- Version 0.9 (released May 15th, 2017) -- Summary of Version 0.9 (released 5/15/2017)
- Version 0.9.001 (released July 18th, 2017) -- Summary of Version 0.9.001 (released 7/18/2017)
- Version 0.9.002 (released July 27th, 2017) -- Summary of Version 0.9.002 (released 7/27/2017)
- Version 0.9.003 (released September 10th, 2017) -- Summary of Version 0.9.003 (released 9/10/2017)
- Version 0.9.004 (released September 14th, 2017) -- Summary of Version 0.9.004 (released 9/14/2017)
- Version 0.9.005 (released September 19th, 2017) -- Summary of Version 0.9.005 (released 9/19/2017)
- Version 0.9.006 (released September 27th, 2017) -- Summary of Version 0.9.006 (released 9/27/2017)
- Version 0.9.007 (released October 3rd, 2017) -- Summary of Version 0.9.007 (released 10/3/2017)
- Version 0.9.008 (released October 12th, 2017) -- Summary of Version 0.9.008 (released 10/12/2017)
- Version 10.0.0 (released October 18th, 2017) -- Summary of Version 10.0.0 (released 10/18/2017)
- Version 10.0.01 (released December 10th, 2017) -- Summary of Version 10.0.01 (released 12/10/2017)
- Version 10.1.1 (released August 30th, 2018) -- Summary of Version 10.1.1 (released 8/30/2018)
- Version 10.1.2 (released November 15th, 2018) -- Summary of Version 10.1.2 (released 11/15/2018)
- Version 10.2 (released October 7th, 2021) -- Summary of Version 10.2 (released 10/7/2021)