Fork me on GitHub
#cider
<
2015-07-01
>
enn01:07:49

I can visit the source of Clojure itself (both Clojure and Java source)

enn01:07:38

and the source of dependencies written in Clojure

enn01:07:53

but not of dependencies written in Java or other JVM languages (Scala)

bozhidar07:07:06

@bruceadams: cider doesn’t do any dep management of its own; this is the responsibility of your build tool

bozhidar07:07:40

for some reason it seems that Clojurians don’t care about source jars as much as Java devs used to care

agile_geek07:07:59

@bozhidar: not sure about that. As Java dev for 19 years I probably look at Clojure source more than I ever did Java…but that might be it’s a good way to learn best practice in Clojure?

bozhidar07:07:28

I meant that Clojure devs don’t seem to care much about Java sources

bozhidar07:07:57

you don’t need a source jar to browse Clojure source code

agile_geek08:07:23

@bozhidar: OK- I understand now 😉

enn13:07:57

the lein pom; mvn dependency:sources incantation suggested by Hugo Duncan in that thread definitely grabbed the sources … I still don’t have them in my classpath but I think I can figure out that part. Thank you for the link bozhidar!

bozhidar14:07:28

downloading them is not enough, they have to be on the classpath so that source lookup algorithm will pick them up

bozhidar14:07:38

I’m not sure if lein sets this up properly or not

enn14:07:18

It doesn’t seem to by default. I think I might need to add the :classifier “source” to the project.clj. But I’m hoping I can find a way to do this generally without having to modify each project’s definition.

bozhidar15:07:31

if you do - share it with the rest of us simple_smile As said - this should be done by something like CIDER, but by the tools that boot the nREPL server

bozhidar15:07:07

but it seems neither lein, nor boot care much about the sources (at least out of the box)

jrychter17:07:23

Should I expect breaking changes when upgrading from 0.8.2 to 0.9.1? I upgraded (upgraded the cider-nrepl middleware too) and I don't get the repl buffer and evaluation doesn't work. Thought I'd ask before I go into debugging.

malabarba17:07:42

@jrychter try uninstalling cider and clojure-mode, restarting emacs, then installing again.

malabarba17:07:50

@jrychter other people have had that problem too, and that seems to fix it

jrychter17:07:52

Ok, so I removed the .elc files from cider and things started working fine.

malabarba17:07:19

It's a bad compilation issue with package.el

jrychter17:07:23

For the reference, I'm running emacs 24.5.1 on OS X. And I don't think this should happen…

malabarba17:07:07

It's pretty rare. But it's a known issue and cider seems to have done something to step right on it. (not that it's cider's fault) :-)

malabarba17:07:18

It's fixed on 25.1

jrychter17:07:48

Now I'm too scared to touch anything in my setup.

malabarba17:07:01

So 24.5 doesn't save you there ;-)

malabarba17:07:15

Nah, don't worry

malabarba17:07:10

In fact, the best way to avoid that issue is to keep your packages always upgraded.

malabarba17:07:30

But, like I said, it's pretty rare. Cider is only the second package I've seen suffer from this

jrychter17:07:44

Oh, no, I tried that. It's a road paved with pain. Some packages will require versions from different repos, I can't add "melpa" without adding a ton of packages with weird version numbers, and there is no way to say "use melpa for this one package only".

jrychter17:07:17

Of course this is not actually addressed at cider, just at the overall emacs package situation, which I think is really bad.

malabarba17:07:53

It's improving a lot on 25.1

jrychter17:07:03

I have marmalade and melpa-stable configured permanently, and I sometimes switch melpa on just for a moment (my hotes say it's for rainbow-identifiers, dash-at-point and names).

malabarba17:07:37

Yeah, you should be able to use just Melpa stable, but some packages erroneously release stable versions that depend on unstable versions.

malabarba17:07:16

When that happens, the only thing to do is let the developer know

jrychter17:07:11

I dream of the day when I'll be able to just use things in emacs, without fiddling around with packages and downloads. I actually find it amazing — with the extensibility of emacs being tens of years ahead of anything else, its packaging story is years behind. Anyway, enough ranting. I hope things will improve somewhat soon simple_smile

malabarba17:07:54

Yes, they will :-)

malabarba17:07:48

Tromey really did a fantastic job with package.el. He just didn't expect it to grow so fast

malabarba17:07:07

Melpa gets 3 new packages a day

malabarba17:07:06

Anyway, On 25.1 there are archive priorities, so you'll be able to have Melpa configured and only use it as a last case resort.

malabarba17:07:27

Besides several general usability improvements.

otijhuis18:07:07

I use pinned packages as well for cider. Seems to work fine

otijhuis18:07:35

Does anyone know the easiest way to get emacs with a specific configuration, clojure etc, installed without people having to jump through lots of hoops? Want to create some emacs tutorials for emacs/cider/clj-refactor etc. A VM actually might be the easiest way I think, unfortunately.

fvaresi18:07:26

This was the way I entered emacs and clojure worlds (at the same time): https://github.com/overtone/emacs-live

fvaresi18:07:33

was quite straighforward for me

andrea.crotti18:07:59

@otijhuis: well a VM is never a great experience, and in the end you only need Java + lein + Emacs

andrea.crotti18:07:21

if someone is not able to install that on his machine he/she not going to go far with Clojure imho

andrea.crotti18:07:38

for the Emacs configuration there are many very easy options, but yeah just put a configuration in github

andrea.crotti18:07:53

or wherever, and they can just clone and launch it

otijhuis18:07:04

@andrea.crotti: understand where you're coming from but trying to make it easy to try out. A proper windows version of emacs wasn't easy to find. If you search for one for OSX you get multiple recommendations as well. Have an existing emacs configuration already? You have to replace it or fiddle with your home location. I know you should be able to figure it out but it's not a great first impression.

andrea.crotti18:07:27

yes true I guess it depends on the audience

andrea.crotti18:07:35

I forgot that there are people using windows

andrea.crotti18:07:58

and yes I don't really enjoy using Emacs on Windows (or do anything else really)

andrea.crotti18:07:38

but in that case you might want to go with Cursive then

andrea.crotti18:07:47

to introduce one thing at a time

otijhuis18:07:00

Same, but unfortunately stuck with Windows at current job

otijhuis18:07:13

Cursive I highly recommend, it's great. But at EuroClojure I noticed that quite a few people, who use emacs for clojure development, don't know about a lot of useful packages or functions. The tutorials will be specifically for clojure in Emacs.

otijhuis18:07:52

But being reasonably easy to set up and not mess with current emacs configuration means a VM is probably the only option. Would prefer not using one but with osx/linux/windows and so on it's probably the 'easiest'

bozhidar18:07:10

btw, Marmalade contributed a lot to the state of chaos we’re in right now

bozhidar18:07:39

it was the first popular 3rd party repo, but the package submission process was pretty flawed

bozhidar18:07:07

submitting packages often didn’t work and a lot of people had submitted the work of others

bozhidar18:07:31

this made them owner of the packages and the actual authors couldn’t update them properly after this

bozhidar18:07:00

not to mention the project was pretty much abandonware for 2 years

bozhidar18:07:10

when Nic stepped in, he did a lot of great work

bozhidar18:07:34

but pretty much everyone had chosen the easy way of MELPA (and MELPA Stable afterwards)

bozhidar18:07:56

while MELPA is definitely not for everyone it works pretty well, if you know your Emacs (Lisp)

bozhidar18:07:18

on the other hand MELPA Stable is hurting from people doing the following things:

bozhidar18:07:42

* putting several packages in the same repo (which results in all of them having the same version in MELPA stable)

bozhidar18:07:11

* people not updating the headers of their packages (resulting in stale dependencies)

bozhidar18:07:37

* mixing MELPA, Marmalade & MELPA Stable on older Emacsen

bozhidar18:07:31

I dream of us having the ability to deploy packages, the way we’re doing in Clojure/Ruby land

bozhidar18:07:48

lein deploy clojars/rake deploy and be done with it

bozhidar18:07:06

relying on tags works overall, but it’s brittle

bozhidar18:07:36

and having to jump through a web ui to submit a package (not to mention having to build the package archive manually first) is super tedious

bozhidar18:07:52

that’s why I haven’t submitted anything to Marmalade lately

bozhidar18:07:02

cask solves some of those problems

bozhidar18:07:22

but it’s not widespread (yet) and it’s not a standard tool

bozhidar18:07:50

I’ve been meaning to write an article about the sorry state of Emacs package for a while now

bozhidar18:07:01

but have been quite busy

bozhidar18:07:14

and in the mean time, people like @malabarba are fixing the problems

bozhidar18:07:26

in an year or so, there may not be something to write about

meow19:07:48

@otijhuis: spacemacs works well on windows

akiva19:07:56

Spacemacs 4 LYFE

enn19:07:02

Anyone know what might be the cause of foo.clj is in a bad state! for a number of clj-refactor operations?

ska19:07:05

FWIW, I was quite happy maintaining my load-path myself, downloading files manually and running a Makefile every now and then. I use cider from a cloned repo. 😄

otijhuis19:07:16

@meow: I know. But got the emacs configuration covered. Going to use a minimal set just for Clojure. Spacemacs does way too much for my taste (I'm too picky and a community configuration just doesn't work for me). It's the whole environment you have to set up that's bugging me atm.

otijhuis19:07:11

For me personally it's easy enough but thinking of UX for starters as well

bozhidar19:07:53

I’m partial to Prelude’s cause 😉

bozhidar19:07:13

generally you need just 4 packages to be productive - clojure-mode, cider, paredit (or equivalent) and company-mode

bozhidar19:07:28

everything else is optional simple_smile

otijhuis19:07:35

Haha, I just steal something from all of them 😉

otijhuis20:07:57

True, but adding some extra's as well. Not truly needed but make it a lot nicer to work with everything (clj-refactor of course, projectile, ido/smex/helm stuff). Just leaving out all the other languages and things you don't use with Clojure. It's just for tutorials from beginner to more 'advanced' stuff so people can see what's possible.