Fork me on GitHub
#boot
<
2015-08-07
>
aengelberg00:08:46

I'm trying to use "bootlaces" with a project that has separate clj and cljs source in src/clj/ and src/cljs/, repectively. However, the call to (bootlaces! +version+) is setting src/ as a resource path, which I don't think I want here. Is this by design and how can I fix this?

micha00:08:38

@aengelberg: that's a bad design decision in bootlaces really

aengelberg00:08:52

Is there a reason the resource paths must be set for the library to be jarred / shipped properly?

micha00:08:05

you can workaround by doing set-env! after the call to bootlaces! to override the settings you don't like

micha00:08:32

no reason other than it's how i organize my own projects

aengelberg00:08:10

In other words, why can't bootlaces! do nothing at all and assume I've put the source I want to ship into :source-paths?

micha00:08:57

yeah it should do that

aengelberg00:08:15

Okie. I'll do that set-env! hack you described.

aengelberg00:08:31

Hey I should have looked in the Issues forum first https://github.com/adzerk-oss/bootlaces/issues/9

micha00:08:40

i'll update bootlaces, i've been meaning to do it for a while now

aengelberg00:08:13

But in general, is there a fundamental difference between source-paths and resource-paths when it comes to shipping jars?

micha00:08:28

yes, very much so

micha00:08:39

in boot directories have "roles"

micha00:08:52

there are two roles, input and output

micha00:08:23

and there are two general types of tasks you make, compiling tasks and packaging tasks

micha00:08:56

some tasks blur the line, but you could say that the various activities that a task does can be divided into compiling or packaging types

micha00:08:34

the idea of the roles is that compiling tasks will look at files in directories with the input role for the sources they'll operate on

micha00:08:02

and packaging tasks will look at files in directories with the output role for files to package or emit

aengelberg00:08:27

And resource-paths are output directories?

micha00:08:53

most of the things you do in tasks has some required relationship with the classpath

micha00:08:04

like files you're compiling will need to be on the classpath, etc

micha00:08:30

so there are 2 roles, which means 4 permutations of those roles

micha00:08:37

input files are on the classpath

micha00:08:48

output files are not necessarily on the classpath

micha00:08:01

reqource-paths directories are both input and output

micha00:08:08

:source-paths is just input

aengelberg00:08:13

Are only resources packaged into jars, not source?

micha00:08:34

oh i have a question about instaparse if you have a moment

aengelberg00:08:41

So "boot pom jar" without bootlaces will result in a defunct jar?

aengelberg00:08:02

And sure, you could even pop over to the #instaparse channel if you want

micha00:08:18

oh! i didn't know, i'll do that simple_smile

micha00:08:55

so most tasks when they emit artifacts they emit them as resources

micha00:08:08

that way they're on the classpath and eligible for packaging

micha00:08:49

so boot pom jar will make a jar that at least has the pom.xml in it

aengelberg00:08:05

But no clj source

micha00:08:08

but things from :source-paths won't be in the jar

aengelberg00:08:34

Ok, that's good to know.

micha00:08:46

so bootlaces just does the thing i pretty much always do, which is add "src" to :resource-paths

aengelberg00:08:18

I wonder if that behavior is sufficiently clear in doc strings / wikis etc.

micha00:08:10

the roles business isn't obvious i think

aengelberg00:08:10

I had begun to take the "source code in resource paths" for granted. Probably just my bad though

micha00:08:45

the roles system evolved from more complicated special case type things

micha00:08:06

but it's different from what maven or leiningen does

onetom14:08:55

@micha: i've also experienced the leak problem. we made our very first project using boot-test (and datomic) and after ~10 run cycles it took 10+seconds to run just 1 test, while for the 1st run it only took maybe 1sec.

onetom15:08:32

guys, as i see there are only 8 people in the #C08BDAPRA channel. it would be great if everyone who uses hoplon and probably cljsjs too would congregate there too, not just on boot, so we can draw attention to questions more precisely.

onetom15:08:09

i wanted to ask for example if anyone has worked on 1. hammerjs-hoplon integration other than https://github.com/tailrecursion/hoplon.hammerjs/blob/master/src/tailrecursion/hoplon/hammerjs.cljs ? or shall we rather use something else, like fastclick or what was it? 2. is there a cljsjs package somewhere for http://hubspot.com api? 3. cljsjs for http://inspectlet.com?

onetom15:08:18

we are facing issues with the initialization of http://js.hsforms.net/forms/v2.js it seems to use some version of react embedded into it and if we call hbspt.forms.create(...) from with-init! no error is thrown but it doesn't work. if we delay it with setTimeout, it works 😕

onetom15:08:13

btw, is hoplon5 compatible with cljsjs?

aengelberg16:08:21

Hi, I have a dilemma about project naming which is probably a question about Java conventions in general. - All libraries I've created or worked with have been not under any specific group-id, e.g. [instaparse "1.4.1"], [loco "0.3.0"] - I'm creating a boot plugin called "cljsee", and boot conventions suggest actual-group-id/boot-cljsee - I don't own any actual web domains - Should I make it com.aengelberg/boot-cljsee or aengelberg/boot-cljsee?

micha16:08:13

@aengelberg: you don't really need to have a group id if you don't want to

micha16:08:38

you can make it just boot-cljsee if you prefer

aengelberg16:08:28

But then (require '[boot-cljsee :refer :all]) is iffy due to the single segment ns

onetom16:08:22

should we have a com.boot-clj group on clojars?

micha16:08:27

i think the single segment namespace problem is like if you have a namespace named class

micha16:08:33

which is a reserved word in java

micha16:08:11

i think you could have a namespace named class.core

micha16:08:34

@onetom: we have the boot group

aengelberg16:08:53

I'm not opposed to group ids. I'm just not sure if I need to own or something in order to claim com.aengelberg

aengelberg16:08:20

Or if aengelberg/boot-cljsee is something one even does

onetom16:08:34

@aengelberg: definitely no direct relationship between the group id and actual domain names

aengelberg16:08:44

Also, most people can't spell my last name correctly on the first try 😉

onetom16:08:33

alex_engelberg: but clojars also provide u with a default group id, so u can use that for the initial testings at least, i suppose

onetom16:08:09

@micha: so shouldn't he use that boot group?

aengelberg16:08:11

My understanding is that group-ids are required in maven projects, therefore Clojure projects that appear to not have a group id are really just project-name/project-name behind the scenes

aengelberg16:08:35

That may be wrong though

alandipert18:08:33

that’s correct

pandeiro18:08:57

@alandipert: i tried to resist. futile.

onetom19:08:53

@pandeiro: !!! thx for making our life easier by opening up this convenient channel for contact

pandeiro19:08:57

onetom: ok, but to show your gratitude, please write an emacs client

pandeiro19:08:24

i say that jokingly but one probably exists already? or?

onetom19:08:12

well there is https://github.com/raamdev/slack-el but it's not working according to their readme

pandeiro19:08:28

oh it doesn't need to actually work...

onetom19:08:06

however the main point in using slack is to step out of the monospaced world and utilize the richness and precision of your graphical display

pandeiro19:08:26

i would feel richer if it had a repl

onetom19:08:53

but since this is a slack team on a free plan, im not sure it's possible to add more integrations to it

onetom19:08:40

but im pretty content with the limitations since i can paste longer code snippets

(without syntax hilite though)

juhoteperi19:08:19

Slack provides IRC server so one can access Slack through normal IRC client

onetom19:08:44

@juhoteperi: have u tried it? what is the experience like? is /list supported to see the available channels?

onetom19:08:00

what happens after a netsplit heals?

juhoteperi19:08:30

@onetom: I have tried it. It's... usable. Didn't test /list. No netsplits because there is only one server.

onetom19:08:53

but if u close your laptop and open it again, that's a netsplit too..

onetom19:08:50

maybe i shouldnt call it netsplit, but not sure how to refer to a partitioning in a distributed system simpler

onetom19:08:35

hmmm.. not sure how this integration should work. slack is trying to ask for write access to even private repos for all of my github orgs... =8-O