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
-
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.
@@ -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 -----