diff options
Diffstat (limited to 'docs/handbook/archived/overview.md')
| -rw-r--r-- | docs/handbook/archived/overview.md | 275 |
1 files changed, 275 insertions, 0 deletions
diff --git a/docs/handbook/archived/overview.md b/docs/handbook/archived/overview.md new file mode 100644 index 0000000000..c6d066c8d3 --- /dev/null +++ b/docs/handbook/archived/overview.md @@ -0,0 +1,275 @@ +# Archived Projects — Overview + +## Purpose + +The `archived/` directory contains legacy Project Tick projects that are no longer +actively developed. These projects remain in the monorepo for historical reference, +documentation completeness, and potential future reuse of components. + +Archived projects are not built, tested, or deployed by the current CI pipeline. +They are preserved as-is at the time of archival. + +--- + +## Archived Projects + +| Directory | Project Name | Type | License | Status | +|---------------------------|---------------------|------------------------|----------|-------------| +| `archived/projt-launcher/` | ProjT Launcher | Minecraft Launcher (C++/Qt) | GPL-3.0 | Archived | +| `archived/projt-modpack/` | ProjT Modpack | Minecraft Modpack | GPL-3.0 | Archived | +| `archived/projt-minicraft-modpack/` | MiniCraft Modpack | Minecraft Modpack Collection | MIT | Archived | +| `archived/ptlibzippy/` | PTlibzippy | Compression Library (C)| zlib License | Archived | + +--- + +## Why Projects Are Archived + +Projects are moved to `archived/` when they meet one or more of these criteria: + +1. **Superseded by a newer project** — The functionality has been replaced by a different + component in the monorepo (e.g., ProjT Launcher was the standalone launcher before + MeshMC took over as the primary launcher) +2. **No longer maintained** — The project has reached end-of-life and no further + development is planned +3. **Completed scope** — The project achieved its intended purpose and doesn't need + ongoing changes (e.g., modpack archives) +4. **Consolidation** — Standalone repositories were merged into the monorepo as + subtrees, and the project's active development has ended + +--- + +## Project Summaries + +### ProjT Launcher (`archived/projt-launcher/`) + +ProjT Launcher was a structurally disciplined Minecraft launcher fork of Prism Launcher. +It was engineered for long-term maintainability, architectural clarity, and controlled +ecosystem evolution. + +**Key characteristics**: +- Written in C++23 with Qt 6 +- CMake build system with presets for Linux, macOS, Windows (MSVC and MinGW) +- Layered architecture: UI (Qt Widgets) → Core/Domain → Tasks → Networking +- Detached fork libraries: zlib, bzip2, quazip, cmark, tomlplusplus, libqrencode, libnbtplusplus +- Nix-based CI and reproducible builds +- Containerized build support (Dockerfile/Containerfile) +- Comprehensive documentation in `docs/` and `docs/handbook/` + +**Notable features at time of archival**: +- Launcher Hub (web-based dashboard using CEF on Linux, native on Windows/macOS) +- Modrinth collection import +- Fabric/Quilt/NeoForge mod loader support +- Java runtime auto-detection and management +- Multi-platform packaging: RPM, DEB, AppImage, Flatpak, macOS App Bundle, Windows MSI + +**Last known version**: 0.0.5-1 (draft) + +**License heritage**: GPL-3.0, with upstream license blocks from Prism Launcher +(GPL-3.0), PolyMC (GPL-3.0), and MultiMC (Apache-2.0). + +For full documentation, see [projt-launcher.md](projt-launcher.md). + +--- + +### ProjT Modpack (`archived/projt-modpack/`) + +ProjT Modpack was a Minecraft modpack curated by Project Tick. The project contained +modpack configuration files and promotional assets. + +**Key characteristics**: +- Licensed under GPL-3.0 +- Contains promotional images (ProjT1.png, ProjT2.png, ProjT3.png) +- Affiliate banner assets (affiliate-banner-bg.webp, affiliate-banner-fg.webp) +- Minimal README — the modpack itself was distributed through launcher platforms + +**Status**: Archived with no active maintenance. The modpack distribution was +handled through the ProjT Launcher and mod platform integrations (Modrinth, +CurseForge). + +For full documentation, see [projt-modpack.md](projt-modpack.md). + +--- + +### MiniCraft Modpack (`archived/projt-minicraft-modpack/`) + +The MiniCraft Modpack is a historical archive of Minecraft modpack releases +organized into multiple "seasons" (S1 through S4). This is a collection of +pre-built modpack ZIP files rather than a source code project. + +**Key characteristics**: +- Licensed under MIT +- Organized by season: + - **MiniCraft S1**: Versions from 12.1.5 through 13.0.0, including beta/alpha/pre-release builds + - **MiniCraft S2**: Versions with mixed naming (A00051c74C, L3.0, R10056a75A, N1.0, N2.0) + - **MiniCraft S3**: Versions from 1.0 through 1.2.0.3, plus a DEV-1.2 build + - **MiniCraft S4**: Alpha versions (0.0.1–0.0.3), Beta versions (0.1–0.2.1), and + releases including a "LASTMAJORRELEASE-2.0.0" +- Contains compiled ZIP archives, not source code + +**Archive purpose**: Preserves the complete release history of the MiniCraft +modpack series for historical reference. + +--- + +### PTlibzippy (`archived/ptlibzippy/`) + +PTlibzippy is a Project Tick fork of the zlib compression library, version 0.0.5.1. +It's a general-purpose lossless data compression library implementing the DEFLATE +algorithm (RFC 1950, 1951, 1952). + +**Key characteristics**: +- Written in C +- CMake and Autotools (configure/Makefile) build systems +- Bazel build support (BUILD.bazel, MODULE.bazel) +- Extensive cross-platform support (Unix, Windows, Amiga, OS/400, QNX, VMS) +- Thread-safe implementation +- Custom PNG shim layer (`ptlibzippy_pngshim.c`) for libpng integration +- Prefix support for symbol namespacing (`PTLIBZIPPY_PREFIX`) +- Language bindings: Ada, C#/.NET, Delphi, Python, Perl, Java, Tcl + +**License**: zlib license (permissive, compatible with GPL) + +**Why forked**: The fork was maintained to resolve symbol conflicts when bundling +zlib alongside libpng in the ProjT Launcher. The custom `ptlibzippy_pngshim.c` +and symbol prefixing prevented linker conflicts in the launcher's build. + +For full documentation, see [ptlibzippy.md](ptlibzippy.md). + +--- + +## Directory Structure + +``` +archived/ +├── projt-launcher/ # ProjT Launcher (C++/Qt Minecraft Launcher) +│ ├── CMakeLists.txt # Root CMake build file +│ ├── CMakePresets.json # Build presets (linux, macos, windows_msvc, windows_mingw) +│ ├── Containerfile # Docker/Podman build container +│ ├── CHANGELOG.md # Release changelog +│ ├── COPYING.md # License (GPL-3.0 + upstream notices) +│ ├── MAINTAINERS # Maintainer contact info +│ ├── README # Project overview and build instructions +│ ├── default.nix # Nix build via flake-compat +│ ├── bootstrap/ # Platform bootstrapping (macOS) +│ ├── buildconfig/ # Build configuration templates +│ ├── ci/ # CI infrastructure (own copy, pre-monorepo) +│ ├── cmake/ # CMake modules and vcpkg integration +│ ├── docs/ # Developer and user documentation +│ │ ├── architecture/ # Architecture overview +│ │ ├── contributing/ # Contributing guides +│ │ └── handbook/ # User/developer handbook +│ └── ... +├── projt-modpack/ # ProjT Modpack +│ ├── COPYING.md # License (GPL-3.0) +│ ├── LICENSE # GPL-3.0 full text +│ ├── README.md # Minimal README +│ └── *.png, *.webp # Promotional assets +├── projt-minicraft-modpack/ # MiniCraft Modpack Archive +│ ├── LICENSE # MIT License +│ ├── README.md # Minimal README +│ └── MiniCraft/ # Season-organized modpack ZIPs +│ ├── MiniCraft S1/ # Season 1 releases +│ ├── MiniCraft S2/ # Season 2 releases +│ ├── MiniCraft S3/ # Season 3 releases +│ └── MiniCraft S4/ # Season 4 releases +└── ptlibzippy/ # PTlibzippy (zlib fork) + ├── CMakeLists.txt # CMake build system + ├── BUILD.bazel # Bazel build + ├── MODULE.bazel # Bazel module definition + ├── Makefile.in # Autotools Makefile template + ├── configure # Autotools configure script + ├── COPYING.md # zlib license + ├── README # Library overview + ├── README-cmake.md # CMake build instructions + ├── FAQ # Frequently asked questions + ├── INDEX # File listing + ├── ptlibzippy.h # Public API header + ├── ptzippyconf.h # Configuration header + ├── adler32.c # Adler-32 checksum + ├── compress.c # Compression API + ├── crc32.c # CRC-32 checksum + ├── deflate.c # DEFLATE compression + ├── inflate.c # DEFLATE decompression + ├── ptlibzippy_pngshim.c # PNG integration shim + ├── ptzippyutil.c # Internal utilities + └── contrib/ # Third-party contributions + ├── ada/ # Ada bindings + ├── blast/ # PKWare DCL decompressor + ├── crc32vx/ # Vectorized CRC-32 (s390x) + ├── delphi/ # Delphi bindings + ├── dotzlib/ # .NET bindings + ├── gcc_gvmat64/ # x86-64 assembly optimizations + └── ... +``` + +--- + +## Ownership + +All archived projects are owned by `@YongDo-Hyun` as defined in `ci/OWNERS`: + +``` +/archived/projt-launcher/ @YongDo-Hyun +/archived/projt-minicraft-modpack/ @YongDo-Hyun +/archived/projt-modpack/ @YongDo-Hyun +/archived/ptlibzippy/ @YongDo-Hyun +``` + +--- + +## Historical Context + +### Timeline + +The archived projects represent different phases of Project Tick's development: + +1. **Early phase** (2024–2025): MiniCraft Modpack was created as a community modpack + project with seasonal releases +2. **ProjT Modpack** (2025): A curated modpack distributed through the ProjT Launcher +3. **ProjT Launcher** (2025–2026): The main Minecraft launcher, forked from Prism Launcher, + representing the most significant engineering investment in the archive +4. **PTlibzippy** (2025–2026): A zlib fork created to solve symbol conflicts in the + launcher's build system + +### Relationship to Current Projects + +| Archived Project | Successor/Replacement | +|---------------------|-----------------------------------| +| ProjT Launcher | MeshMC (`meshmc/`) | +| ProjT Modpack | No direct successor | +| MiniCraft Modpack | No direct successor | +| PTlibzippy | System zlib (no longer bundled) | + +--- + +## Policy + +### Modifying Archived Code + +Archived projects should generally not be modified. Exceptions: + +- **License compliance**: Updating license headers or COPYING files +- **Security fixes**: Critical vulnerabilities in code that might be referenced externally +- **Documentation**: Fixing links, adding archival notes + +### Removing Archived Projects + +Archived projects should not be removed from the monorepo. They serve as: +- Historical reference for design decisions +- License compliance (preserving upstream attribution) +- Knowledge base for understanding the evolution of current projects + +### Referencing Archived Code + +When referencing data or patterns from archived projects in new code: +- Copy the relevant code rather than importing from `archived/` +- Document the source with a comment +- Ensure license compatibility + +--- + +## Related Documentation + +- [ProjT Launcher](projt-launcher.md) — Detailed launcher documentation +- [ProjT Modpack](projt-modpack.md) — Modpack project details +- [PTlibzippy](ptlibzippy.md) — Compression library documentation |
