All pages
Powered by GitBook
1 of 6

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Release History

A brief history in time of our major releases

In this section, you will find the release notes for each version we release under this major version. If you are looking for the release notes of previous major versions, use the version switcher at the top left of this documentation book. Here is a breakdown of our major version releases.

Version 5.0

Major release adding full BoxLang support, modern HTML themes with dark mode, enhanced UI/UX with real-time search, complete relationship documentation, and comprehensive developer experience improvements.

Version 4.0

This major bump was to deprecate some CFML engines

Version 3.0

Added a JSON strategy in preparation for multiple output strategies we will support. Updated build processes and a new outlook for the future of the project.

Version 2.0

The migration from ColdDoc into DocBox.

Introduction

DocBox is a JavaDoc-style documentation generator for your BoxLang and CFML Applications codebase

📚 DocBox reads component metadata and structured comments and outputs documentation in an HTML, JSON, or UML (diagram) format.

💻 System Requirements

  • BoxLang 1.0+

  • Lucee 5+

  • Adobe ColdFusion 2018+

🔢 Versioning

DocBox is maintained under the guidelines as much as possible. Releases will be numbered in the following format:

And constructed with the following guidelines:

  • Breaking backward compatibility bumps the major (and resets the minor and patch)

  • New additions without breaking backward compatibility bumps the minor (and resets the patch)

  • Bug fixes and misc changes bumps the patch

📄 License

Apache 2 License: ​

🔗 Important Links

  • 💻 Code: ​

  • 🐛 Issues:

  • 💬 Community:

💼 Professional Open Source

DocBox is professional open source software backed by offering services like:

  • 🛠️ Custom Development

  • 🎯 Professional Support & Mentoring

  • 📖 Training

  • ⚡ Server Tuning

HONOR GOES TO GOD ABOVE ALL

Because of His grace, this project exists. If you don't like this, don't read it; it's not for you.

"Therefore being justified by faith, we have peace with God through our Lord Jesus Christ: By whom also we have access by faith into this grace wherein we stand, and rejoice in hope of the glory of God." Romans 5:5

🔒 Security Hardening

  • 👀 Code Reviews

  • 🚀 Much More

  • Semantic Versioning
    http://www.apache.org/licenses/LICENSE-2.0
    https://github.com/ortus-solutions/docbox
    https://ortussolutions.atlassian.net/jira/software/c/projects/DOCBOX/issues/
    https://community.ortussolutions.com/
    Ortus Solutions, Corp
    Ortus Solutions, Corp
    <major>.<minor>.<patch>

    What's New With 4.0.0

    BREAKING

    • Dropped support for Adobe 2016. Adobe doesn't support ACF 16 anymore, so neither do we.

    NEW

    • Added support for Adobe 2021

    • Added support for @myCustomTag custom docblock tags on methods. (Already supported on components and properties, but missing on methods).

    • Added GitHub Actions CI for automated testing, format checking, releases and more

    FIX

    • Fixes support for Adobe 2018. (Mainly in the CommandBox strategy.)

    Contributing

    🤝 There are several ways you can help in the development of DocBox!

    • 🔧 Send a pull request

    • 🐛 Submit a bug or feature request to our Jira issue tracker

    • ✅ Write a test

    🔧 Send a Pull Request

    • Fork or the

    • Clone the repository fork to your machine - git clone [email protected]:ME/DocBox.git

    • Create a feature/ or patch/ branch: git checkout -b patch/syntax-error-in-html-output

    ✅ Testing DocBox

    DocBox has a suite of Testbox specs validating that it works as expected. New features and bug fix PRs should (ideally) contain accompanying tests. Here's how to do that via CommandBox:

    1. After cloning the repo, run box install to install development dependencies

    2. Run box start to boot a test server

    3. Run box testbox run to run the suite of DocBox tests.

  • Make your changes, commit as normal, and use git push to sync your commits to Github.

  • Please target all PRs at the development branch.

  • Edit test specs in tests/specs as necessary, and run box testbox run again to validate tests pass.

    DocBox
    DocBox documentation repo

    What's New With 4.1.0

    Added

    • Adobe 2023 Testing and Support

    • New Github Actions

    • New supporting files

    • New build/Docs.cfc task for building the documentation using itself, before we where getting away with it because there was a previous DocBox version. Now we need to build the docs with the current version of DocBox.

    Fixed

    • Build Versions and changelog

    • Removal of box.zip in root from old scripts

    What's New With 5.0.0

    🎉 Major Release - BoxLang Support & Modern UI Overhaul

    BREAKING CHANGES

    • Minimum CFML engine requirements updated:

      • Lucee 5.x minimum (dropped Lucee 4.x)

      • Adobe ColdFusion 2018+ (dropped ACF 2016, 2018)

    • HTML output now uses Bootstrap 5 (previously Bootstrap 3)

    • Default theme structure reorganized with new Alpine.js-based SPA architecture

    NEW - BoxLang Support 🚀

    • Full BoxLang 1.0+ Runtime Support - DocBox now runs natively on BoxLang

    • BoxLang CLI Module - New boxlang module:docbox command for generating docs from BoxLang CLI

      • boxlang module:docbox --source=/path --mapping=app --output-dir=/docs

    NEW - Modern HTML Theme System 🎨

    • Two Professional Themes:

      • Default Theme - Modern Alpine.js SPA with client-side routing and dynamic filtering

      • Frames Theme - Traditional frameset-based layout with Bootstrap 5

    • Theme Selection - Choose themes via

    NEW - Enhanced UI/UX Features 💎

    • Modern Color Scheme - Purple gradient accents (#5e72e4), softer colors, reduced blue overload

    • Visual Indicators - Emoji badges throughout:

      • 📚 Packages, 📁 Folders, 🔌 Interfaces, 📦 Classes

      • 🟢 Public, 🔒 Private, ⚡ Static, 📝 Abstract

    NEW - Complete Relationship Documentation 📊

    • All Known Implementing Classes - Interfaces now show all classes that implement them

    • All Known Subclasses/Subinterfaces - Display complete inheritance hierarchy

    • Fixed Inheritance Queries - Properly handles both current class and ancestor interfaces

    • Improved Package Highlighting - Subtle left border instead of full background

    NEW - Developer Experience Improvements 🛠️

    • Enhanced JavaDoc Support - Comprehensive documentation with <br> tags for BoxLang compatibility

    • 50+ Updated Code Examples - All strategy files updated with proper line breaks

    • Improved Error Messages - Better validation and user-friendly CLI output

    NEW - Strategy Enhancements 📝

    • CommandBox Strategy - Enhanced CLI command documentation with namespace support

    • JSON Strategy - Machine-readable JSON with hierarchical package structure

    • XMI/UML Strategy - Enhanced property inference and generic type support

    • Abstract Template Strategy - Improved helper methods for all strategies

    IMPROVED

    • Build System - Updated build process with BoxLang support

    • Testing - Multi-engine testing (Lucee 5/6, Adobe 2023/2025, BoxLang 1.0/BE)

    • Documentation - Comprehensive updates for all new features

    • Code Formatting - Consistent CFFormat rules across entire codebase

    FIXED

    • Metadata Format Handling - getImplements() now properly handles both array and struct formats

    • Interface Implementation Display - Fixed empty queries for implementing classes

    • Package Navigation - Improved CSS styling for better UX

    TECHNICAL DETAILS

    • Bootstrap 5.3.2 - Modern component syntax and data-bs-* attributes

    • Bootstrap Icons 1.11.2 - Comprehensive icon set for UI elements

    • Alpine.js - Lightweight reactive framework for SPA theme

    • CSS Architecture - CSS custom properties for theming with light/dark mode

    MIGRATION NOTES

    From 4.x to 5.0

    1. Minimum Requirements: Ensure you're running Lucee 5+, Adobe 2018+, or BoxLang 1.0+

    2. HTML Output: The default theme now uses Bootstrap 5. If you have custom CSS, review for compatibility

    3. Theme Selection: Explicitly set theme="frames" if you prefer the traditional frameset layout

    Updating HTML Customizations

    If you extended the HTML strategy:

    • Update Bootstrap 3 classes to Bootstrap 5 equivalents

    • Review custom CSS for CSS custom property compatibility

    • Test dark mode if you have custom themes

    UPGRADE INSTRUCTIONS

    COMMUNITY

    • GitHub Issues: https://github.com/Ortus-Solutions/DocBox/issues

    • Documentation: https://docbox.ortusbooks.com

    • Community Forum: https://community.ortussolutions.com

    Support for multiple source mappings

  • JSON array format support for complex project structures

  • Built-in help system with --help and --version flags

  • Dual Format Metadata Handling - Automatically detects and handles both BoxLang array format and CFML struct format for implements metadata

  • ModuleConfig.bx - Native BoxLang module configuration for seamless integration

  • theme
    property:
  • Dark Mode Support - Full dark/light theme toggle with localStorage persistence

  • Responsive Design - Mobile-friendly layouts with proper breakpoints

  • Real-time Method Search - Live filtering with keyboard navigation

    • Search methods by name or signature

    • Navigate results with Enter/Shift+Enter

    • Visual highlighting and auto-scroll

    • Clear with Escape key

  • Method Tabs - Tabbed interface for filtering methods (All/Public/Private/Static/Abstract)

  • Bootstrap Tooltips - Contextual help on visibility badges and deprecated methods

  • Smooth Scrolling - Enhanced navigation with smooth scroll behavior

  • Auto-expanding Navigation - jstree automatically expands first 2 levels for better UX

  • Modern JavaScript
    - ES6+ features with proper spacing conventions
  • CSS Custom Properties - Comprehensive theming system with CSS variables

  • Performance - Optimized query operations and template rendering

    Line Break Handling
    - Workaround for BoxLang metadata line break stripping
  • Inheritance Detection - Properly checks current class before ancestors

  • JavaScript Conventions - Proper spacing in all control structures and function calls

    BoxLang Users
    : Use the new
    boxlang module:docbox
    CLI command for native BoxLang integration
    # CommandBox users
    box update docbox
    
    # BoxLang users
    boxlang install docbox
    
    # Verify installation
    box package show version
    new docbox.DocBox()
        .addStrategy( "HTML", {
            outputDir : "/docs",
            theme     : "default" // or "frames"
        } )