Blog

Brad Wood

March 11, 2020

Spread the word


Share your thoughts

We've been publishing all stable Lucee builds and select release candidate builds to ForgeBox for some time now.  This allows you to use CommandBox CLI to start up a Lucee server running the version of your choice.

server start cfengine=lucee@5.3.4+77

Publishing these CF engines has been a manual process in the past, and was something we'd do after Lucee issued a release announcement.  This has changed last week now with three major additions to our process aimed at giving you faster builds, easier testing, and more deployment options.

Snapshots (and more) now on ForgeBox

Instead of only publishing stable Lucee releases, every single Lucee build is now getting pushed to ForgeBox as a new version.  This includes

  • Stable releases
  • Snapshot builds
  • Release candidates
  • alphas, betas-- whatever they put out!

There's actually quite a lot of snapshot builds.  Basically every commit to Lucee bumps the build number so there are usually a few snapshot builds every week, and typically 75-100 snapshot builds between every stable release.  Publishing every single version of Lucee that comes out allows you to have total control over what versions you test and deploy now without needing to wait.  We publish the build binaries in S3 so downloads are as fast as possible too.  

server start cfengine=lucee@5.3.4-SNAPSHOT+84

Also remember that unless you explicitly ask for a prerelease version, you will always only get stable versions of Lucee when starting a server.

// This will give you the latest stable version
server start cfengine=lucee

// This will give you the latest stable version starting with 5.2
server start cfengine=lucee@5.2

Remember to use Semantic Versions

One minor difference to keep in mind is Lucee server uses a typical versioning scheme for java projects which looks like this:

<major>.<minor>.<patch>.<build>[-<preReleaseID>]

// Ex of an unstable build
5.3.4.84-SNAPSHOT

// Or a stable build
5.3.4.80

However, CommandBox and ForgeBox use the npm-flavored semantic versioning (semver) which is slightly different.  Basically the build ID is moved to the end after a plus (+) sign.

<major>.<minor>.<patch>[-<preReleaseID>]+<build>

// Ex of an unstable build
5.3.4-SNAPSHOT+84

// Or a stable build
5.3.4+80

The important thing to remember is, when starting a server via CommandBox always use the second format shown above since that is how ForgeBox recognizes each release. 

What versions exist?

Questions about what versions are available?  No problem!  Here are some ways you can find out:

  • Visit the ForgeBox listing for the Lucee package and view all the versions in the versions tab 
    https://www.forgebox.io/view/lucee#versions
  • View the last few versions via the CLI with the command
    forgebox show lucee
  • Start typing your cfengine and hit the <tab> key to invoke the tab-completion feature.  This actually phones out to ForgeBox as you hit tab to get the current valid list of versions that match what you've typed so far

Please note we've backfilled ForgeBox to contain every single snapshot build back through 5.2.9.  If you need snapshot builds from prior to that time, please let us know.

You can also follow the Lucee bleeding edge, which means every time you start your CommandBox server you'll get the very latest Lucee snapshot release.  Please only use this for local development and not production!

server start cfengine=lucee@be

Lucee Light builds on ForgeBox

Lucee has a modular core and comes bundled with a bunch of extensions that approximate the functionality that comes bundled with Adobe ColdFusion.  But that means you are loading the Hibernate libraries, PDF libraries or JDBC drivers even if you don't need them. There is a second type of Lucee server called "Lucee Light" which contains all the core engine, but with zero extensions.  People creating custom docker builds for example will start with Lucee Light and then add back only the extensions their app needs.  To get a feel for all the Lucee extensions available, see this page that lists all official extensions.

We're now publishing CF Engines to ForgeBox based on the Lucee Light builds which allows you to start up a Lucee Light server. These are under a ForgeBox package named "lucee-light" and we've also backfilled all the same versions that exist for the normal "lucee" engine.  Note, the three bullets points above apply to Lucee Light as well,  Just replace "lucee" with "lucee-light" and you're good to go.

// Latest stable
server start cfengine=lucee-light

// Specific version
server start cfengine=lucee-light@5.3.4.77

// Bleeding edge
server start cfengine=lucee-light@be

If you have questions about how to install extensions into a Lucee light server, please hit us up on Slack and we can show you several ways to manage that.

It's Automated, baby!

Perhaps the coolest part of all of this is that we've automated the entire process!  That's right, no manual intervention is required to put new Lucee versions on ForgeBox.  This means new Lucee and Lucee Light engines will appear daily on Forgebox, probably before you even see the release announcements from the Lucee dev forum.

If you're the curious type, you can see all the code we use to import these versions.  It is implemented as a CommandBox Task Runner (of course!) and the code lives here:

https://github.com/Ortus-Solutions/forgebox-cfengine-publisher/blob/master/task.cfc

The task is run as part of a daily Travis-CI build whose output from each run is visible here:

https://travis-ci.org/github/Ortus-Solutions/forgebox-cfengine-publisher/builds

 

Add Your Comment

Recent Entries

Protect Your Data with Proactive Database Security Management

Protect Your Data with Proactive Database Security Management

In today’s digital age, data is among the most valuable assets for businesses. It powers decision-making, customer engagement, and operational efficiency. However, as data volumes grow, so do the risks associated with managing it. Ensuring database security and compliance is no longer optional—it’s a necessity.


The Evolving Landscape of Database Security

Modern databases face a myriad of challenges, from increasingly sophisticated cyber threats to strin...

Cristobal Escobar
Cristobal Escobar
December 06, 2024
The Experts Driving BoxLang: The Team Behind the Revolution

The Experts Driving BoxLang: The Team Behind the Revolution

Introduction

BoxLang is not just another programming language; it’s a revolutionary step forward for JVM environments. But who are the minds behind this innovation? Meet the talented team of architects, developers, and engineers who have combined decades of experience to create BoxLang—a language built for scalability, performance, and efficiency. Let’s explore their ex...

Cristobal Escobar
Cristobal Escobar
December 04, 2024
Why BoxLang is the Modern Software Development Evolution You’ve Been Waiting For?

Why BoxLang is the Modern Software Development Evolution You’ve Been Waiting For?

In today’s software landscape, developers need tools that deliver flexibility, efficiency, and modernization. With decades of open-source expertise, Ortus Solutions introduces BoxLang—our most ambitious project yet. Built for the JVM, BoxLang integrates seamlessly with Java, offering powerful features for scalable, high-performance web applications. Fully compatible with CFML, it ensures a smooth transition and expanded capabilities for existing projects.

Maria Jose Herrera
Maria Jose Herrera
December 04, 2024