- Fix a regression in the handling of the
--vs-codeflag
- Bump dependencies
- Preserve per-build
:js-optionsinmerged-shadow-config. Previously the root project's builds had their:js-optionsunconditionally replaced with{}, which clobbered settings like:js-provider :externaland:external-index. Now the root project's:js-optionsare left untouched, and submodule builds get:js-package-dirsmerged into their existing:js-optionsrather than replacing them.
- Added
:extra-java-args, especially useful fromdeps.local.edn
- Added the
-XX:+EnableDynamicAgentLoadingflag, so nREPL can correctly load its agent
- Two more JVM flags are enabled by default
-J-Dclojure.main.report=stderr: make Clojure print stacktraces immediately, instead of writing them to a file-J-Djdk.attach.allowAttachSelf: enable interrupting an nREPL evaluation
- Add
--no-prefixor{:launchpad/options {:prefix false}}to hide the start-of-line per-process prefix in the output - Introduce
--execute(or{:launchpad/options {:execute false}}) and functionality that can launch the first configured:exec-fn(and relative:exec-args).
-
Make initial summary print aliases with namespace.
Before:
Aliases: dev, cider, zprint, localAfter:
Aliases: :dev, :home/cider, :home/zprint, :mine/local -
Make sure the clojure process can communicate over
stdio.
- Make sure CLI flags can negate options set in
.clojure/deps.edn/deps.local.edn, e.g.{:launchpad/options {:emacs true}}with--no-cider-connect
- correctly handle .env / .env.local file creation and deletion
- Honor aliases both from
deps.local.ednand CLI args
- Bring back passing in aliases at the command line
- Upgrade dependencies
-
Add an
:nrepl.middleware/descriptorto silence the warning -
Correct dotenv watch semantics. No matter the initial state we fix the behavior to achieve:
.env .env.local Values From ✅ ✅ .env.local✅ ❌ .env❌ ✅ .env.local❌ ❌ latest state The last line means we currently do not keep track and therefore cannot remove already set environment variables.
--[no-]namespace-mapsoption (disable*print-namespace-maps*)
- Boolean flags are now defined as
--[no-]..., so that you can override local/global/project defaults from the command line, e.g.bin/launchpad --no-go
- Fix
--emacsflag
- Use lambdaisland/cli for cli arg handling
- Dependency upgrades
- Re-release of previous version (missed an unmerged commit)
- Update the launchpad version loaded at runtime
- Warn when merging shadow-cljs configs and build-ids conflict
- Make sure child processes are killed when launchpad receives a INT/TERM/KILL signal
- Add new flag
:trace-load?, which sets the*loading-verbosely*var at startup - Support watching entire directories through the file watcher interface
- Print aliases being used
- Add two-arg (uncurried)
run-process
- Merge consecutive calls to
lambdaisland.launchpad.watcher/watch!, so it's easier to use from user code - Don't show full clojure invocation by default, can be seen with
--verbose
- Fix the
--portal/:portaloption
- Additional flags for injection Portal, Sayid, debug-repl
--vs-codeas alias for--cider-nrepl- Allow setting options as a map (:launchpad/options) in
deps.local.edn/~/clojure/deps.edn
- More succinct and nice looking output on boot. Only show nREPL port and launchpad flags.
- Immediately initialize the context with the current system environment, so
that it is available even in
start-steps.
- Inject shadow-cljs deps when needed and not already present
- Support for more fine grained step customization with
start-steps/end-steps/pre-steps/post-steps
- Check deps before injecting extra deps (cider, nrepl, shadow, etc). Declared deps versions always get precedence.
- More succinct output while starting up
- Show command line invocations that are being run
- Allow setting :java-args, :middleware, :eval-forms directly from the top-level opts
- Add facilities for running nested processes,
lauchpad/run-process
- Add an explicit dependency on guava, to make sure we don't get old versions that clash with shadow-cljs
- Upgrade dependencies
- Fix an issue with
.envreloading messing up Java's env var representation
- Added a
:launchpad/shadow-connect-idsoption, for cases where you don't want to auto-connect to every build in:launchpad/shadow-build-ids
- Bump dependencies
- Allow setting nrepl port/bind from CLI
- Provide a warning when connecting to emacs fails, rather than exiting
- Dependency version bumps
- Add support for top-level shadow-cljs config/builds, not only sub-project builds
- Better handle
:pathsindeps.local.edn, ensure they are picked up at boot, not only at first classpath reload
- Support setting :lauchpad/main-opts in .clojure/deps.edn
- Write the current classpath to
.cpcache/launchpad.cp, for integrating third parties like clojure-lsp. (configurecat .cpache/launchpad.cpas your:classpath-cmd) - Call
(user/go)in atry/catch - Start the watcher on a separate thread, it can take a long time to boot, and meanwhile we shouldn't block REPL startup.
- Pick up any
:depsfromdeps.local.ednat startup, not at the first classpath reload
- Disable directory-watcher file hashing, it gets prohibitively slow
- Fixes cljdoc build. There should be no changes to launchpad users.
- Couple the lifetime of the Clojure process to the lifetime of launchpad, exit launchpad when the process dies, and kill the process when launchpad exits
- Fixed some of the watching behavior
- Watch files even if they don't yet exist (pick up when they get created)
- Better deal with
:aliases {...}indeps.local.edn - Clean up output
--goflag, automatically call(user/go)
- Fixed previous botched release
- Handle missing
.envor.env.local
- Handle missing
deps.local.edn
- Make sure
--cider-nreplworks, even whenemacsclientis not available, e.g. for Calva
- Watch .env / .env.local
- Improve shadow-cljs support
- Add nrepl/nrepl as an extra dependency by default (#1)
Initial release
- Load and watch deps.edn and deps.local.edn
- lambdaisland.classpath integration
- Support for cider-nrepl, refactor-nrepl
- Basic support for shadow-cljs cljs nREPL-base REPL
- Auto-connect for Emacs