Blog

Brad Wood

May 05, 2016

Spread the word


Share your thoughts

We are excited to announce availability of CommandBox v3.1.0 Beta for testing and feedback.  Our goal is to have this released in time for Into The Box so that means we need you to help get it stable and ready to go.  There are a collection of bug fixes, and several very nice improvements, the biggest of which is the ability to start up any CFML engine you want on demand including Lucee 5, Adobe ColdFusion 2016 and Railo.

How do I get it?

First things first.  If you already have an older version of CommandBox installed, you can run this command which will give you the URL 

CommandBox> upgrade --latest

Or just hop over to our integration server and grab the correct binary for your OS:
http://integration.stg.ortussolutions.com/artifacts/ortussolutions/commandbox/3.1.0/

We're still working on the GitBook docs for this release, but you can use the "help" commands to get additional info.

What do I need to know?

The first thing to take note of is that the beta of CommandBox is currently pointing to our stage server since we are using a brand new ForgeBox API.  This will be fine for testing, and even installing most packages, but it's not guaranteed to be the exact same packages as what's on production.  

If you want more juicy details on the new features of 3.1.0, please check out these two blog entries on my personal blog:

Exciting New Features In The CommandBox 3.1.0 Bleeding Edge

CommandBox Multi-Server Support Now In Beta (v3.1.0)

Also, a full list of tickets completed thus far are available here in JIRA:

JIRA Search for "Resolved" tickets in the "3.1.0" release.

What's new?

Here's an overview of the big changes and improvements in this release.  There will be more to come, but this is what we have done so far.

Multi-Server Support

The CommandBox CLI runs on Lucee Server, and the web servers you could start in any directory used to only be Lucee too.  Now you can start up a web server of any kind and version.  Currently supported CF engines are:

  • Adobe ColdFusion 2016.0.0+297996
  • Adobe ColdFusion 11.0.0+289974
  • Adobe ColdFusion 10.0.12+286680
  • Adobe ColdFusion 9.0.2+282541
  • Lucee Server 4.5.2.018 (embedded, so no download needed)
  • Lucee Server 5.0.0-SNAPSHOT+243
  • Railo Server 4.2.1+008

Starting up a CF server is still super easy.  Everything you need will be downloaded the first time you start the server and cached for subsequent restarts.  

# Start the default engine
CommandBox> start

# Start the latest stable Railo engine
CommandBox> start cfengine=railo

# Start a specific engine and version
CommandBox> start cfengine=adobe@10.0.12

Start any Java WAR as a server

This goes hand-in-hand with multi-server support, but opens the door even wider to ANY Java J2EE application, which could be a custom CF engine build of your choice, or just a standard Java application.

CommandBox> server start WARPath=/path/to/explodedWAR
CommandBox> server start WARPath=/path/to/WARArchive.war

Global Server Defaults

You can store your server settings in a server.json file since version 3.0.0.  Now, we've made it even better by allowing you to provide global defaults that apply to all servers via the config settings.

CommandBox> config set server.defaults.app.cfengine=lucee@5-snapshot
CommandBox> config set server.defaults.jvm.heapSize=1024

New ForgeBox 2.0 API

We've re-written the ForgeBox API to be better, faster, and stronger.  It supports a whole slew of new functionality to help CFML developers publish their packages and get them into the hands (and servers) of other developers.

ForgeBox 2.0 tracks multiple versions of the same package

This is self explanatory, but a huge improvement.  Your project's entire history of releases can now be tracked via ForgeBox, allowing users to install the specific version of your package that they need.

CommandBox> install coldbox@3.8.1

ForgeBox can create users from the CLI

Signing up for a new ForgeBox account just got even easier with the following command.  

CommandBox> forgebox register

ForgeBox can log you in from the CLI

You can also authenticate to ForgeBox to publish your packages and more with this new command.  You may never touch a web browser as long as you live.

CommandBox> forgebox login

ForgeBox can publish package from the CLI

Put them all together and what do you get? Only the smoothest, fastest, and most advanced workflow for managing your open source packages in the CFML space.  With one command you can shoot new packages off to ForgeBox for the entire world to see, or just update a new version of an existing package.  There's no need to log into the web site and keep stuff up to date, this command does it all for you, including reading in your readme files.

CommandBox> forgebox publish

Bumping package versions auto-tags your Git repo

In our never-ending quest to improve the developer's workflow, bumping your packages to a new version will automatically tag your local Git repo (if you're using one).  That's one less thing you need to worry about before using the publish command.

CommandBox> bump --patch message="Finalized awesome features."

Semantic Version support

Now that ForgeBox is aware of all your packages versions, the CLI is also able to use fancy version ranges to install the versions you need and allow you to update easily to new compatible versions of your packages in the future.  We've implemented full NPM-style semver support.  Check out these new syntaxes supported for packages on ForgeBox.

# Latest stable version
CommandBox> install foo

# latest version, even if pre release (bleeding edge)
CommandBox> install foo@be

# A specific version
CommandBox> install foo@1.2.3

# Any version with a major number of 4 (4.1, 4.2, 4.9, etc)
CommandBox> install foo@4.x

# Any version greater than 1.5.0
CommandBox> install foo@>1.5.0

# Any version greater than 5.2 but less than or equal to 6.3.4
CommandBox> install "foo@>5.2 <=6.3.4"

Interceptor-based CLI scripts

If you want to piggyback additional commands to run at key lifecycle events for your package, servers, or CLI, you can specify scripts in your package.json.  Scripts are commands to be run from the CommandBox interactive shell, that will execute automatically in the same working directory.  They are stored in the box.json under an object called "scripts" and keyed off the name of the interceptor you want to fire them. These are useful for additional housekeeping tasks that you want to make automatic.

{
  "scripts" : {
   "postVersion" : "package set location='gitUser/gitRepo#`package version`'"
   "postPublish" : "!git push",
   "onServerStart" : "echo 'Hi, thanks for starting `server show name` on port `server show web.http.port` in directory `pwd`'"
  }
}

Well, don't just stand there

It's time for you to get out there and test.  Put in tickets for any bugs you find here.  To review, you can download the beta for CommandBox 3.1.0 here:

http://integration.stg.ortussolutions.com/artifacts/ortussolutions/commandbox/3.1.0/

And if you want to read a more in-depth review of the features, check out these posts on my personal blog:

Exciting New Features In The CommandBox 3.1.0 Bleeding Edge

CommandBox Multi-Server Support Now In Beta (v3.1.0)

 

 

Add Your Comment

Recent Entries

ColdBox 7.2.0 Released

ColdBox 7.2.0 Released

ColdBox, a widely used development platform for ColdFusion (CFML), has unveiled version 7.2. Packed with compelling new features, bug fixes, and enhancements, this release is designed to empower developers by boosting productivity, refining scheduled task capabilities, and enhancing the overall reliability and efficiency of application development. This article will delve into the key highlights of ColdBox 7.2 and elucidate how these advancements can positively impact developers in their daily coding endeavors.

Luis Majano
Luis Majano
November 20, 2023
Into the Box 2023 Series on CFCast

Into the Box 2023 Series on CFCast

Excitement is in the air as we unleash the highly anticipated ITB 2023 series exclusively for our valued CFCast subscribers – and the best part? It's FREE for CFCast members! Now is the perfect time if you haven't joined the CFCast community yet. Plus, we've got an incredible End-of-Year deal that's too good to miss

Maria Jose Herrera
Maria Jose Herrera
November 20, 2023
Ortus Deals are Finally Here!

Ortus Deals are Finally Here!

The much-anticipated Ortus End-of-the-Year Sale has arrived, and it's time to elevate your development experience! Whether you're a seasoned developer, a tech enthusiast, or someone on the lookout for top-notch projects, Ortus has something special in store for you. Brace yourself for incredible discounts across a wide array of products and services, including Ortus annual events, books, cutting-edge services, and more.

Maria Jose Herrera
Maria Jose Herrera
November 15, 2023