Coldbox and VueJS untangled

PLUS PLUS PLUS… pinning to an exact lucee version in commandbox.

I am a bit frustrated. Usually we spin up our lucee servers in a commandbox environment, and since this is so easy most of the time we also use it in production. But upgrading these servers can be done in different ways.

Don’t use the admin

If you like to do this the oldfashioned way, you can open your lucee admin console, and use the update command. Please DON’T do this, it will get very messy soon. Let me show you. I start a lucee machine from the 5.3.5 range like this

Ok. Nothing wrong here, just the latest lucee 5.3.5 version. Now I go to the lucee admin, upgrade to a 5.3.6.68 version which is not to most recent version, but just a more recent one. When I restart lucee in commandbox, go the admin panel again and hit the update button it tells me I am here

So yes indeed. I am at 5.3.6.something, and let’s see what commandbox tells me:

So I am at 5.3.6 but commandbox tells me I am still at 5.3.5, and this is my server home: /Users/wil/.CommandBox/server/5A746C10927338ACA47F151AF98414D4-testLuceeVersions/lucee-5.3.5.96
This is kind of confusing, so probably updating from the lucee admin is not the best thing to do.

Use commandbox to start a lucee version

Let’s use a different method. I am telling commandbox I want a more recent version, for example 5.3.6. So I am starting my server from box with

Ok, so now I have a 5.3.6 version and it is really showing as 5.3.6+68. I can do a server status --verbose and notice the Server home is at
/Users/wil/.CommandBox/server/5A746C10927338ACA47F151AF98414D4-testLuceeVersions/lucee-5.3.6.68

So all looks good know, until you realise you loose all settings. But hey, thats why we have cfconfig. So before we update we save the old server config to a json file, do the update and restore the config. More or less like this.

cfconfig export oldconfig.json
server stop
server start cfengine=5.3.6
cfconfig import oldconfig.json
server restart

There are more ways to achieve the same results, but at least we have our settings back and a server version in a descriptive server home dir. We still had some issues though since we installed a redis plugin with license file. This one was still in the old server config, so we had to move the license file to the same path in our new server home. No problem, we can manage that. But spoiler alert, this is still not the correct method.

Pin your Lucee server to an exact version

So our customer wanted a new version, 5.3.7.47. They didn’t want 5.3.7.48 yet so we started 5.3.7.47. Let’s have a look at the screenshot. And look carefully because this message will disappear soon

5.3.7+48 it is?????????

So lucee is telling me it is 5.3.7.48 and NOT 5.3.7.47. I was convinced this should give me the correct version, so I Checked The Fine Manual… and found almost nothing about the correct version, except this short snippet .

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

Now I was convinced I found some stupid lucee bug so I asked on the always helpful slack channel. Things were even worse, since 5.3.7.48 was not even out when we issued our request for .47. So what really happened: In the middle of some innocent monthly midnight OS updates for 200 plus linux servers two of our lucee servers suddenly died with incorrect versions.

And yes. It is not a bug, according to this post we have to use the npm-flavoured semantic versioning which is documented at github . Not sure what this flavour means, but from the ortus post I realize i should use this
start cfengine=lucee@5.3.7+47

So please spot the difference. A plus instead of a dot. Of course I have seen this plus notation before. But it is not documented in the commandbox manual, not written down cleary in semver documentation and not even documented in the npm flavoured semver. For people not very initiated in semantic version it might not be obvious you can stick a build version behind a plus sign.

So how should I know? Maybe I should take a commandbox training in Munich….

What an amazing way to waste my afternoon 🙂 but glad I was educated by Brad Wood, Zac Spitzer and Pete Freitag. Thanks guys, at least now I understand this plus sign.

2 Comments

  1. Zac Spitzer

    you can always just ask commandbox to use always use the same fixed server home directory

    {
    “app”:{
    “cfengine”:”lucee@5.3.8-SNAPSHOT+159″,
    “serverHomeDirectory”:”../this_server_home_wont_change_by_version”
    }
    }

    • Wil

      That’s true, and useful when you want to know exactly where your lucee files reside.
      But you can’t start a new version in the same serverHome. You have to wipe out the old server before you can start a new one. So you still have to save your old settings, special license files and restore them for your new server version. So it still isn’t a ‘in place’ upgrade like in the lucee admin
      exporting and importing witch cfconfig is easy though. The pain is in the addional licensed plugins. You have to find the license, save it and copy it back to the new server version

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

© 2024 ShiftInsert.nl

Theme by Anders NorenUp ↑