Has anyone here actively used this library? I am l...
# lucee
j
Has anyone here actively used this library? I am looking for insights for the community that we all would not have to repeat individually. https://github.com/softwareCobbler/luceedebug
j
The Fusion Reactor one worked, but it was jumping inside the FR system and it was very hard to get other devs to engage with... • setting it up • the debugger seemed to disrupt their workflow, thinking flow • keeping it updated I wonder if this could be integrated into VSCode?
z
it is?
j
I don't see the extension in the extension library searching inside VSCode.
message has been deleted
j
Ah, looked for the wrong item. Kudos!
z
no wukkas
j
I was wondering if there were a VSCode extension for getColdBug. 🙂
z
that project is abandoned i think?
j
Ah, OK.
j
@johnfarrar, yup, i've been using
luceedebug
for about a week or two. i'm very happy with it so far. game changer. it requires me to switch IDEs (i wasn't a vs code person), but i'll take it.
there were two reasons i didn't use coldbug: • it runs in a browser (similar to the fusionreactor step debugger approach), not in an IDE • it requires java web start, which isn't really a thing anymore. openwebstart gives web start some life, i guess, but i hit a wall right off the bat.
i'm all in on `luceedebug`now. if you run into any problems with the docs, let me know.
j
I was also not excited about the browser embeded approach Java either.
j
i'm not sure if anybody else has tried out luceedebug yet. i seem to have been the first. (i did a brown bag with my team, today, so those folks have it set up, too--it's now baked into our docker image and activated with an environment var.)
j
@bdw429s, this sounds like something we could do with the Commandbox image.
b
I'm not familiar with luceedebug. Where are the docs even at?
Can't say I've ever even heard of it!
j
👍 1
j
Someone should mention it on the Podcast if you guys do one today.
b
@gpickin ☝️
j
right now, the java agent jar needs to be built from source (easy, though). on the rough roadmap: • jar build pipeline with releases • lex build/publish pipeline it's @David Rogers’s project, though. he might welcome help in polishing it up but i don't want to speak for him. (let me know if i misstated anything, david.)
b
If we started publishing the jars to Forgebox like Fusionreactor does, it would be fairly trivial to create a CommandBox module that downloaded them and auto-added the JVM args.
j
i started working on github action PR but i don't know anything about how to publish things and what makes sense in the luceeverse, so i wasn't sure how to proceed.
b
Yeah, hard to say since I'm not familiar with the project. For comparison, I can tell you the equivalent fusionreactor package just has • box.json • fusionreactor.jar • frjvmti_x64.dll • libfrjvmti_arm64.dylib • libfrjvmti_x64.dylib • libfrjvmti_x64.so luceedebug doesn't appear to have native libs for anything.
The FR team hosts their jar on their own S3 bucket and use the ForgeBox REST API directly to publish each new package version. I'm not sure why they make it harder for themselves though. All they need to do is dump their jar in a folder on the build server with the box.json bearing the current version number and a
location
of
ForgeboxStorage
and then run
Copy code
box publish
with their API key in place.
j
is it like this, typically? • jar & lex published to github releases • jar is added to a forgebox package and published to forgebox for use in commandbox
b
Not sure about the lex. Is Luceedebug a Lucee extension as well?
But yeah, I think you've got the idea
j
it hasn't been made into an extension yet, but it's on the roadmap. that may end up being the standard way to run it.
b
If extensions have the ability to register a java agent, that could be easiest.
j
yeah, i'm not sure if it's possible yet.
b
All the logic in the CommandBox FR module for going the java agent JVM arg route is here https://github.com/bdw429s/commandbox-fusionreactor/blob/master/ModuleConfig.cfc#L196 Most of the code is just handling all of FR's optional settings. There's not much logic involved in just • installing the jars if needed • adding the JVM arg on server start
👍 1
j
speaking of FR, btw, @bdw429s, we haven't figured out a way to run both FR and luceedebug agents at once. hasn't been a problem for me since i tend to debug locally and run FR on servers, but the conflict does exist.
b
Interesting. David would likely need to work around that on his own. I doubt the FR team will be willing to spend any effort to allow a free replacement for their software to be run along side them 🙂
j
right, a replacement for the FR debugger
j
What if it was a holiday gift for the community, lol.
🎁 2
😀 1
j
the initial take from the luceedebug side is that it would be non-trivial to allow both agents to coexist: https://cfml.slack.com/archives/C06TA0A9W/p1671233561280219?thread_ts=1670608880.746199&cid=C06TA0A9W
z
I added a PR to build the agent on github actions https://github.com/softwareCobbler/luceedebug/pull/21/files
j
given the current params of "upload artifact" does it write (and overwrite) a single, unversioned jar artifact?
z
the artifact is per run
j
where is the artifact found? associated with the GA run, or in releases?
I'm not an expert on the whole java agent stuff, I personally wouldn't mind seeing the agent being (bytecode instrumentation) built directly into lucee, which could be turned on or off, would make everything easier
✔️ 1
cfc breakpoints work with vs code with the right mappings out of the box
j
A debugger that works with the IDE, standard would be awesome. Ben Forta told me I was the only one he met that used that feature in ColdFusion Studio... the original IDE.
j
I could swear that I used a debugger with ACF back in the day. Might have been CF Studio. (That was the successor to homesite, I think?) I think folks who start on CFML are used to cfdump/cflog hacking and don't know what they're missing.
z
can't quite remember how i got it accidently working, trying again now
j
@jamiejackson, yes, it was build on the same foundation as HomeSite.
👍 1
z
message has been deleted
j
Where's the breakpoint?
z
in
throw.java
i did get it working once with cfml breakpoints, can't remember how tho
j
btw, are you working with the latest commit? (the one from last night?)
z
that's just lucee 6.0.0.316
j
oh, i meant the latest luceedebug commit.
z
haven't even tried it yet!
j
haven't tried the latest luceedebug commit or luceedebug, period?
wasn't clear if you're just trying native java debugging or whether you're trying out the luceedebug stuff.
d
lol we're gonna get in trouble talking about non box things on box chat. yeah "canonicalize in all cases" should help fix windows path stuff
👍 1