This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2022-08-10
Channels
- # announcements (9)
- # aws (11)
- # babashka (37)
- # beginners (97)
- # biff (2)
- # calva (73)
- # clj-kondo (17)
- # cljfx (3)
- # clojure (89)
- # clojure-europe (45)
- # clojure-norway (12)
- # clojurescript (17)
- # datahike (8)
- # datomic (13)
- # deps-new (4)
- # figwheel-main (1)
- # graalvm (2)
- # hyperfiddle (8)
- # introduce-yourself (6)
- # leiningen (38)
- # lsp (57)
- # malli (13)
- # nbb (46)
- # off-topic (40)
- # pathom (3)
- # polylith (8)
- # rum (4)
- # shadow-cljs (14)
- # spacemacs (1)
- # sql (11)
- # xtdb (10)
The latest nightly https://clojurians.slack.com/archives/C032YH7P0R2/p1660085003180609 removes clojure-lsp’s dependency on lsp4j. A few of us have been testing this for awhile, but still, this is a big change at the very foundations of clojure-lsp, so we’d appreciate beta testers.
I've switched to this beta (by building the master branch). I'll raise any issues if I come across them 🙂

Isn't there an M1 built nightly? This breaks assumptions in Calva so that M1 users can't use the nightly
setting. This is the link Calva will use on an M1/M2 computer using M1/M2 versions of VS Code: https://nightly.link/clojure-lsp/clojure-lsp/workflows/nightly/master/clojure-lsp-native-macos-aarch64.zip
@U0ETXRFEW I think the nightly M1 native is not being properly built, we should fix that indeed c/c @U04V15CAJ, I think we should make that main task build for nightly too or have a different link for nightly arm64 macos
Would be awesome if it could be that link I posted. The logic for selecting binary is a bit complicated as it is. 😃 But if that's trouble on your end, I'd be happy to update Calva.
@U0ETXRFEW really good news, github actions just released support for M1 yesterday https://github.blog/changelog/2022-08-09-github-actions-self-hosted-runners-now-support-apple-m1-hardware/
Sorry to spoil the party, but this is only for self-hosted runners. CirrusCI which lsp is currently using is the only thing free public thing I know of that can build it.
Yeah, just read that 😂 https://github.com/actions/runner-images/issues/2187#issuecomment-1209633839
well, I don't think we can make the nightly link to work for the cirrus build, we will need to think on something else so
> well, I don't think we can make the nightly link to work for the cirrus build what is blocking you?
ATM we have https://nightly.link/clojure-lsp/clojure-lsp/workflows/nightly/master/clojure-lsp-native-macos-aarch64.zip, which try to get the artifact from https://github.com/clojure-lsp/clojure-lsp/blob/master/.github/workflows/nightly.yml
Is there a way to have a direct link to the binary cirrus built @U04V15CAJ?
you can upload the binary to Github release manually, like I do with babashka, clj-kondo, etc etc
You can make a dev snapshot release where you upload it. Every master commit from babashka is uploaded here, including the cirrus one https://github.com/babashka/babashka-dev-builds
hum, I'd like to avoid that, as we are only having this issue for arm64 m1, all other builds are working being stored on github action summary like https://github.com/clojure-lsp/clojure-lsp/actions/runs/2828714594
if cirrus provide just a direct link to the binary like github does, that would work
I managed to find a link:
https://api.cirrus-ci.com/v1/artifact/task/6274753567653888/binaries/clojure-lsp-native-macos-aarch64.zip
the issue is that it points to a task run id, it'd be nice if something like latest
work
I think I accidentally found a URL that works 😂 https://api.cirrus-ci.com/v1/artifact/github/clojure-lsp/clojure-lsp/main/binaries/clojure-lsp-native-macos-aarch64.zip
Right, we won't have the same link @U0ETXRFEW following nightly standard, but we do have a link for macos arm64 This link: https://api.cirrus-ci.com/v1/artifact/github/clojure-lsp/clojure-lsp/main/binaries/clojure-lsp-native-macos-aarch64.zip
Wait a sec, I have an idea, we could configure a A alias to a sub domain
and make it work for all cases following the same standard I guess
Another option might be to have a Github action build that just copies the artifact from cirrus? (Not that I know what I am talking about, but anyway.)
Yeah, I think so, it'd be a little bit tricky to link when cirrus finished then trigger another build on github action or so, but it's an option I guess
The DNS solution is good because it makes things future compatible should providers change.
@U0ETXRFEW AFAICS there is no way to make a specific subdomain link to specific URL, only to another domain/subdomain, so if we do that links would still follow different standards, so I guess the only available option for now is use a different link for mac arm64 😢 I'll have to make the same change https://github.com/clojure-lsp/clojure-lsp/blob/master/install, so maybe could be a way to calva use that script instead of manually doing on your side as well?
No, but maybe we should have a install.bat or something? I don't see babashka or clj-kondo doing that though, is there any reason for that @U04V15CAJ?
I don't get why you're not going with the solution I proposed, it seems much simpler.
It's working :) https://github.com/clojure-lsp/clojure-lsp-dev-builds/releases Will update nightly link to link to those releases
@U0ETXRFEW Done, you can trust on https://clojurians.slack.com/archives/C032YH7P0R2/p1660153220335399
And to download always the latest you can use: https://github.com/clojure-lsp/clojure-lsp-dev-builds/releases/latest/download/clojure-lsp-native-linux-amd64.zip
@jlle I was reviewing clojure-lsp’s deps-lock.json
and was wondering if it could or should be “cleaned up” at all. It has a lot of deps that are used only during development. Is that a problem? Or a feature? 🙂 Does clj-nix pull in deps from all the aliases in the deps.edn
files? Is there any way to exclude certain aliases?
I consider it a feature, since the goal is to capture all the dependencies (you can use any alias during nix build time) But maybe we could add an option to the CLI to generate a lock file for only certain aliases. In the case of clojure-lsp it's a bit more complex since we have multiple deps.edn files, we need to define the deps.edn and the alias
Not really, we just wanted to know if it was possible to exclude some unnecessary deps
Currently the only way is to modify manually the lock file, I'll think about a new option to the deps-lock command to fetch the deps for only one alias
Thanks for the explanation. I’m so new to nix that I don’t know if I’m asking the right questions. The first question I should be asking, I think, is what’s the point of the nix code @ericdallo? Does it provide a dev environment from which you can reproducibly build a clojure-lsp executable? If so, then we need clj-nix to pull in dependencies in the :build
alias, and maybe in the :debug
alias too. Or is it a runtime environment from which can reproducibly run a clojure-lsp executable? In that case maybe we’d benefit from cutting out the deps from certain aliases. (Or do these questions themselves expose my ignorance? 😅 )
No problem, valid questions! The point is to have a way to build clojure-lsp using nix/flakes, in a pure way, specifying all necessary deps and locking them, with nix we have reliable way to repro the same executable on different envs. So I do think we want clj-nix to use the same aliases we use for prod binary indeed
@ericdallo I started editing some code and ended up editing code in my "target" folder again when navigating to a function. I think this was reported and fixed a couple of times now. It happens a lot in the babashka.cli project after I've done a release (which creates a target folder in the project) ❤️
Yeah, it should be fixed, maybe it's something with babashka.cli project, I can take a look soon
Hi! I submitted https://github.com/clojure-lsp/clojure-lsp/pull/1179. It should fix issue #1084 with resolve-macro-as.