From aa03936791f8eb744fd764d0776fdb68d4d313ed Mon Sep 17 00:00:00 2001 From: Andy McFadden Date: Thu, 28 Dec 2023 10:06:12 -0800 Subject: [PATCH] Version 1.0.0 Update version number and publish documentation. --- AppCommon/GlobalAppVersion.cs | 2 +- DiskArc/Defs.cs | 2 +- Install.md | 24 ++++++++++++------------ README.md | 9 ++++----- SourceNotes.md | 14 ++++++++++++++ docs/Manual-cp2.md | 4 ++-- docs/README.md | 2 +- docs/cli-tutorial/extract.html | 3 +++ docs/gui-manual/dragcopy.html | 3 +++ docs/gui-tutorial/add.html | 6 ++++-- docs/index.html | 25 ++++++++++--------------- ndocs/publish.py | 2 +- 12 files changed, 56 insertions(+), 40 deletions(-) diff --git a/AppCommon/GlobalAppVersion.cs b/AppCommon/GlobalAppVersion.cs index 4f7c27c..4cb73b0 100644 --- a/AppCommon/GlobalAppVersion.cs +++ b/AppCommon/GlobalAppVersion.cs @@ -27,7 +27,7 @@ public static class GlobalAppVersion { /// Overall application version. /// public static readonly CommonUtil.Version AppVersion = - new CommonUtil.Version(1, 0, 0, CommonUtil.Version.PreRelType.Alpha, 1); + new CommonUtil.Version(1, 0, 0, CommonUtil.Version.PreRelType.Final, 0); // NOTE: there's an independent version in DiskArc/Defs.cs } } diff --git a/DiskArc/Defs.cs b/DiskArc/Defs.cs index 7b7fbb8..2a26020 100644 --- a/DiskArc/Defs.cs +++ b/DiskArc/Defs.cs @@ -27,7 +27,7 @@ public static class Defs { /// DiskArc library version number. /// public static CommonUtil.Version LibVersion { get; } = - new CommonUtil.Version(1, 0, 0, CommonUtil.Version.PreRelType.Alpha, 1); + new CommonUtil.Version(1, 0, 0, CommonUtil.Version.PreRelType.Final, 0); public const string BUILD_TYPE = #if DEBUG diff --git a/Install.md b/Install.md index 7fecc28..3f74c18 100644 --- a/Install.md +++ b/Install.md @@ -24,14 +24,14 @@ or use one of these links to download a recent stable release: System | Self-Cont'd? | Link ------------- | ------------ | ---- -Windows x86 | no | https://github.com/fadden/CiderPress2/releases/download/v1.0.0-alpha1/cp2_1.0.0-alpha1_win-x86_fd.zip -Windows x86 | yes | https://github.com/fadden/CiderPress2/releases/download/v1.0.0-alpha1/cp2_1.0.0-alpha1_win-x86_sc.zip -Windows x64 | no | https://github.com/fadden/CiderPress2/releases/download/v1.0.0-alpha1/cp2_1.0.0-alpha1_win-x64_fd.zip -Windows x64 | yes | https://github.com/fadden/CiderPress2/releases/download/v1.0.0-alpha1/cp2_1.0.0-alpha1_win-x64_sc.zip -Mac OS x64 | no | https://github.com/fadden/CiderPress2/releases/download/v1.0.0-alpha1/cp2_1.0.0-alpha1_osx-x64_fd.zip -Mac OS x64 | yes | https://github.com/fadden/CiderPress2/releases/download/v1.0.0-alpha1/cp2_1.0.0-alpha1_osx-x64_sc.zip -Linux x64 | no | https://github.com/fadden/CiderPress2/releases/download/v1.0.0-alpha1/cp2_1.0.0-alpha1_linux-x64_fd.zip -Linux x64 | yes | https://github.com/fadden/CiderPress2/releases/download/v1.0.0-alpha1/cp2_1.0.0-alpha1_linux-x64_sc.zip +Windows x86 | no | https://github.com/fadden/CiderPress2/releases/download/v1.0.0/cp2_1.0.0_win-x86_fd.zip +Windows x86 | yes | https://github.com/fadden/CiderPress2/releases/download/v1.0.0/cp2_1.0.0_win-x86_sc.zip +Windows x64 | no | https://github.com/fadden/CiderPress2/releases/download/v1.0.0/cp2_1.0.0_win-x64_fd.zip +Windows x64 | yes | https://github.com/fadden/CiderPress2/releases/download/v1.0.0/cp2_1.0.0_win-x64_sc.zip +Mac OS x64 | no | https://github.com/fadden/CiderPress2/releases/download/v1.0.0/cp2_1.0.0_osx-x64_fd.zip +Mac OS x64 | yes | https://github.com/fadden/CiderPress2/releases/download/v1.0.0/cp2_1.0.0_osx-x64_sc.zip +Linux x64 | no | https://github.com/fadden/CiderPress2/releases/download/v1.0.0/cp2_1.0.0_linux-x64_fd.zip +Linux x64 | yes | https://github.com/fadden/CiderPress2/releases/download/v1.0.0/cp2_1.0.0_linux-x64_sc.zip Once downloaded, unzip the file somewhere convenient (Safari on the Mac will do the unzip for you). There is no installer; the commands are executed directly from where they are unzipped. @@ -62,7 +62,7 @@ The commands are: - `CiderPress2`: desktop graphical interface (Windows builds only) The download includes the manual for cp2, `Manual-cp2.md`, formatted for 80 columns for ease -of viewing in a terminal window. The file is in "markdown" format, which is perfectly readable +of viewing in a terminal window. The file is in "Markdown" format, which is perfectly readable as a plain text file. The manual for the GUI, and tutorials for both applications, can be found on the [web site](https://ciderpress2.com/). @@ -76,8 +76,8 @@ The CiderPress II command-line utility was developed on x64 CPUs with: Compatibility is determined mostly by the .NET runtime, so more recent versions of the operating systems are expected to work. Older versions of the operating systems may or may not work. For -example, the CLI application has been successfully run on Windows 7 32-bit, but this will not be -tested regularly. +example, the CLI application has been successfully run on Windows 7 32-bit (x86), but this will +not be tested regularly. The code is targeted to .NET Core 6, and is expected to work on newer versions of the runtime. @@ -87,7 +87,7 @@ The contents of the framework-dependent download packages for different systems entirely identical. The application itself is compiled to platform-agnostic bytecode. Each platform has a system-specific "cp2" executable that gets the runtime up and pointed in the right direction. The only significant difference is between 32-bit code and 64-bit code; you -cannot run a 64-bit package on a 32-bit system. +cannot run a 64-bit package on a 32-bit runtime. If you want to run the command-line app on a platform that doesn't have a system-specific binary on the Releases page, you need to install the .NET runtime for your system, and then diff --git a/README.md b/README.md index fd29673..daeb659 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,5 @@ # CiderPress II # -### **This is alpha-quality software. Use at your own risk.** - CiderPress II is a software tool for working with disk images and file archives associated with vintage Apple computers, notably the Apple II line and early Macintoshes. It runs on modern desktop and embedded systems. @@ -15,9 +13,10 @@ as copy and replace whole disk partitions. For installation instructions, see the [install guide](Install.md). **Current status:** - - The command-line and desktop GUI tools are alpha quality. The command-line tool is available - for Windows, macOS, and Linux, but the GUI tool currently only runs on Windows. - - Video demos, made during development: + - The command-line tool runs on Windows, macOS, and Linux (anywhere .NET Core 6 runs). + - The desktop GUI runs only on Windows. + - Video demos: + - v1.0 quick introduction: https://youtu.be/ZrUfNzscq3g - v0.4 drag & drop: https://youtu.be/P2kss3aOEvs - v0.3 disk handling: https://youtu.be/5tE07owhcCc - v0.2 new GUI: https://www.youtube.com/watch?v=esEHP6Bo8GI diff --git a/SourceNotes.md b/SourceNotes.md index b981552..27d22f5 100644 --- a/SourceNotes.md +++ b/SourceNotes.md @@ -101,3 +101,17 @@ Since I don't know what the right answer is, I'm going to forge ahead with the WPF version. This will ensure that the various APIs work correctly with a GUI app, and demonstrate how I think the tool should behave. Fortunately, the GUI application code is a relatively small part of the overall package. + +## Source Code Division ## + +As of v1.0, the division of code between components is approximately: + + - 4% generic libraries (CommonUtil) + - 54% app-specific libraries (DiskArc, FileConv, AppCommon) + - 14% library tests (DiskArcTests and FileConvTests) + - 13% CLI (includes regression tests) + - 13% WPF GUI + - 1% miscellaneous (Examples, MakeDist) + +(Based on Lines of Executable Code, from Visual Studio's "Calculate Code +Metrics" feature.) diff --git a/docs/Manual-cp2.md b/docs/Manual-cp2.md index 2be3ce1..4c3c079 100644 --- a/docs/Manual-cp2.md +++ b/docs/Manual-cp2.md @@ -1231,8 +1231,8 @@ Short single-hyphen equivalents are provided for a few of the options: - `-ph` = `--preserve=host` - `-pn` = `--preserve=naps` -These may be provided singly or in a single chunk, e.g. "-pnfj" is equivalent -to "-pn -f -j". +These may be provided singly or as a single chunk, e.g. `-pnfj` is equivalent +to `-pn -f -j`. #### `--classic` diff --git a/docs/README.md b/docs/README.md index dd776b4..3687b1b 100644 --- a/docs/README.md +++ b/docs/README.md @@ -28,7 +28,7 @@ handful of top-level documents (like the project README and installation instructions) are copied out of the `top` directory. Some text variable substitutions can be performed on HTML and Markdown files -as they are copied, e.g. all occurrences of `1.0.0-alpha1` will be replaced with +as they are copied, e.g. all occurrences of `1.0.0` will be replaced with the current app version. This is used to update the links in the download instructions (`Install.md`) to point at the current release. diff --git a/docs/cli-tutorial/extract.html b/docs/cli-tutorial/extract.html index 0632e8d..7b1933e 100644 --- a/docs/cli-tutorial/extract.html +++ b/docs/cli-tutorial/extract.html @@ -140,6 +140,9 @@

Attribute Preservation

extracting Docs/TeachTest extracting Docs/TeachTest (rsrc) -> Docs\._TeachTest

+

Use -pa for AppleSingle, -pd for AppleDouble, +-pn for NAPS, -ph for host filesystem (Mac OS only), +or -p0 for no preservation (the default).

Selection With Wildcards

diff --git a/docs/gui-manual/dragcopy.html b/docs/gui-manual/dragcopy.html index 16ae763..775f7f5 100644 --- a/docs/gui-manual/dragcopy.html +++ b/docs/gui-manual/dragcopy.html @@ -121,6 +121,9 @@

Drag / Copy Between Applications

images by opening the first image, copying the data, closing it, and then opening the second image to do the paste.

+

If you copy a disk image or file archive that is contained within another archive and is +currently open in the Archive tree, it will be closed automatically when copied.

+

The application has no ability to influence how Windows Explorer handles the clipboard data prepared for "foreign" transfers, so the file data must be arranged in the clipboard in a way that allows it to be written to Windows without further action. This requires separating data and diff --git a/docs/gui-tutorial/add.html b/docs/gui-tutorial/add.html index 8ab4969..3959763 100644 --- a/docs/gui-tutorial/add.html +++ b/docs/gui-tutorial/add.html @@ -149,7 +149,9 @@

Import

but the files are assumed to be in a "modern" format. Attribute preservation is ignored, and a file converter is applied.

Unlike export, import has no "best conversion" mode. You must specify - the converter to use, with the Conversion Mode pop-up menu.

+ the converter to use, with the Conversion Mode pop-up menu. + For example, if you drag a text file in, you might want it to be treated + as a text file or as source for an Applesoft BASIC program.

@@ -158,7 +160,7 @@

Import

import-conv-opts
-

The options used for file imports can be set by clicking on the +

The options used for file import converters can be set by clicking on the Conversion Settings button in the Add/Import Options area. Pick the conversion mode from the pop-up menu at the top, configure the desired options, and click Done.

diff --git a/docs/index.html b/docs/index.html index 57cfcd2..e318469 100644 --- a/docs/index.html +++ b/docs/index.html @@ -90,7 +90,9 @@

Key features:

  • Works directly with physical hard drives and removable media.
  • Provides file converters for many document, graphic, and code files.
  • -

    See this page for a complete list of supported +

    A brief (3-minute) introductory video +is available. +See this page for a complete list of supported file formats and conversions.

    sample @@ -103,25 +105,18 @@

    Key features:

    -Download the latest release (1.0.0-alpha1) from github.

    +Download the latest release (1.0.0) from github.

    -

    Some short video demos, made during development:

    - - -

    Open Source

    -

    CiderPress II is written in C# .NET, using the (free to download) -Visual Studio Community 2022 IDE as the primary development environment. -The GUI uses the Windows Presentation Foundation (WPF) API.

    -

    The full source code is available on +

    Free Software

    +

    The full source code for CiderPress II is available on github, distributed under the Apache 2.0 license, which allows use of the code in both commercial and non-commercial projects.

    +

    The code is written in C# .NET, using the (free to download) +Visual Studio Community 2022 IDE as the primary development environment. +The GUI uses the Windows Presentation Foundation (WPF) API.

    +

    As part of this project, documentation was created for all of the supported archive, disk image, and vintage file formats. These are included with the source code, and can be accessed from the diff --git a/ndocs/publish.py b/ndocs/publish.py index 9cd0169..67f4425 100644 --- a/ndocs/publish.py +++ b/ndocs/publish.py @@ -15,7 +15,7 @@ # Current version string. Used for text substitution. -app_version = "1.0.0-alpha1" +app_version = "1.0.0" pkg_version = app_version # ----- nothing configurable below -----