This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
2015-09-04
Channels
- # admin-announcements (25)
- # beginners (21)
- # boot (161)
- # cider (12)
- # clojure (92)
- # clojure-art (1)
- # clojure-germany (5)
- # clojure-nl (5)
- # clojure-russia (38)
- # clojure-sweden (1)
- # clojurescript (87)
- # clojutre (2)
- # cursive (9)
- # datascript (1)
- # datomic (22)
- # devops (1)
- # editors (33)
- # events (3)
- # hoplon (19)
- # immutant (7)
- # jobs (2)
- # ldnclj (22)
- # off-topic (41)
- # re-frame (34)
- # reagent (39)
boot show -h
I think there is an -f
option that you can use to log the fileset between tasks
@jellea: what do you want to do? :)
Ah cool. Discussed that with jt yesterday
Not 100% sure if this will actually work @jellea. Potentially you need to copy the file, touch it, and create a new fileset from it.
Gave it a try and it works! FYI using this to trigger a core.cljs compile on changes in edn files
@jellea: what do you mean by core.cljs compile? sounds intriguing
@alandipert: He has a system that derives much of its functionality from .edn files. So when those edn files change they want to recompile cljs.
not 100% sure on the details but I guess some macro inlines the edn stuff or so.
interesting. do you know why the normal watch way isn't applicable?
normal watch only triggers cljs recompilation of cljs or macro files have changed, not when .edn files change.
@onetom: Interesting question, havenât considered that. let me try.
@alandipert: oh and core.cljs as in their core.cljs not cljs.core
its ok i think any excuse to write a cool task and learn boot APIs is legit đ
@alandipert: I was actually wondering if using touch
like this is âidiomaticâ technically this modifies the fileset right?
it's on the edge... the fileset doesn't really guarantee any properties of the underlying file other than its name and contents, it would be like touch-ing a blob in .git
but perhaps permissions and timestamps should contribute to the identity of tmpfiles
(they don't in git, maybe to avoid platform differences, not sure)
anyway i think it's idiomatic because it's idiomatic in boot to write code that does what you want
then to share and discuss it with the community, even more idiomatic
@jellea: if the issue was that it wouldnât end up in a jar you can add the path to both src and resource paths
how do you mean first try?
@martinklepsch: i don't think touch
ing a file will totally work because the last modified time is one of the things that is included in the immutable fileset object
you would need to update both i think, touch the file and then create a new fileset object reflecting the change
@micha: it definitely does work
the tasks I pasted are tested (to some degree)
maybe it does, maybe the interim change is sufficient for boot to pickup that change though
what youâre saying is why I was asking if itâs idiomatic/richtig đ
oh yeah i remember that now
@raywillig: what's up?
i'm getting a class not found error. do i need to include the jetty dependencies in my build.boot?
that sort of made things worse since it wasn't finding the ring and cors stuff I needed. but i was able to make it work w/o with-deps by just specifying rong-core instead of the whole shootin match
right, i figured that, but it was getting painstaking to figure out which ones i was missing. and clearly i didn't need the whole ring suite in my deps so that was a good discovery to make
@juhoteperi: should I file an issue for that dependency reloading thing in boot-cljs btw? Just that it doesnât get lost?
@martinklepsch: Will be fixed when upstream change is merged
@juhoteperi: Iâm talking about using set-env!
to add a cljs dependency, is that the same thing?
Oh, that one
Should be quite simple change
are notifications for adzerk-oss in this channel?
I don't think so
@micha: canât do it without admin permissions
adzerk-oss
@martinklepsch: you're on the "owners" team, is that not enough?
Think Ifound it
I set it up for a couple of repos now. Should work.
@micha: I did get the multi module build working: https://github.com/metosin/palikka/blob/master/build.boot
Needs "some" cleaning đ
fileset "slicing" and merging can be properly implemented with a function
for dependencies it would be best if pom task took :dependencies option
I would also like to find some solution on how to define the modules in the files themselves or something
The one I linked
I'll see how general implementation I can create for fileset slicing and merging. That would definitely be useful.
Just code on the flight đ
And deploy from plane
splitting and tagging fileset and then merge is a thing i was trying to figure out how to do in the general case
Yeah sounds good
rather than inventing a new thing that does the same, try to stick to the git workflow as much as possible
I'm not sure if there is anything there for selecting few files for some task
we should do hack something in tampere
Sure. We can hack at our office.
You both were staying for few days?
going here after that: https://www.google.de/maps/place/17200+Asikkala,+Finland/@61.1721353,25.5471382,15z/data=!3m1!4b1!4m2!3m1!1s0x468fcd4502fbf303:0x37fb7e58d74deaa0
would be cool to have a boot-friendly
task that sets up all sorts of beginner friendly things (thinking of https://github.com/frenchy64/dynalint and similar projects)
Could someone please help me with writing a boot task? I am trying to package quill.js as a cljsjs package, however, I am getting the below error:
clojure.lang.ExceptionInfo: java.lang.AssertionError: Assert failed: No .inc.js file found!
regular
I am guessing that somehow the files are not getting moved from the download but unsure why that would be happening. Here is my task. I have already created an externs in the path resources/cljsjs/quill.js/quill.ext.js.
(deftask package []
(comp
(download :url ""
:unzip true)
(sift :move {#"quill.js" "cljsjs/quill.js/development/quill.inc.js"
#"quill.min.js" "cljsjs/quill.js/production/quill.min.inc.js"
#"quill.base.css" "cljsjs/quill.js/common/quill.base.css"
#"quill.snow.css" "cljsjs/quill.js/common/quill.snow.css"})
(sift :include #{#"^cljsjs"})
(deps-cljs :name "cljsjs.quill-js")))
@kenny: (show :fileset true)
after sift tasks should be useful to debug if the files are in correct places.
Hmh, that can be a problem also but not the one that is causing the error
you might need underscore there, and probably instead of cljsjs/quill.js
perhaps cljsjs/quill_js
or whatever, the same as the :name
Hmm, yeah namespaces can have dashes. It's the files which can't have them.
Hmm.. the output from the (show :fileset true)
is interesting. I think it is creating the folders in the incorrect directory.
@kenny: omit the js
suffix in general
@martinklepsch: From what? All directories?
package name, which subsequently also means directories, yes
:move {#"quill.js" "cljsjs/quill.js/development/quill.inc.js"
this would rename e.g. foo/bar/quill.js
to foo/bar/cljsjs/quill.js/development/quill.inc.js
.
The move works so that it replaces the string matched by the key with the value
Also these are regexes so maybe quill\.js
Ah. So in zip that I am downloading in the task the quill.js file is in the directory dist/quill.js. So maybe: dist\/quill\.js
?
Also, you need to take into account that they are inside quill-0.20.0
directory.
@juhoteperi: these regexes should still match as long as they donât start with ^
no?
martinklepsch: Yes, they will match but afaik only the explicitly matched string will be replaced
#".*/dist/quill\.js"
could work
@juhoteperi: If you donât mind explaining, how did that move the files up a directory?
string replace replaces just the part which is matched by the regex
@kenny: looking forward to your PR đ
I've read the Task Writer's Guide and it advises to refer to how perun is generating metadata for sitemaps, but I'm finding it hard to follow
Looking through the perun source it looks like :filename and :last-modified metadata is present, but when I do (:metadata (meta fileset)) on my fileset in my task it shows up as nil
@esp1 checkout get-meta
and set-meta
functions instead https://github.com/hashobject/perun/blob/master/src/io/perun/core.clj#L8
Thanks - It looks like these functions aren't actually used in the perun sitemap task tho. I guess my bigger question is: is all metadata freeform, or are any 'standard' metadata values expected to be provided by boot?
Reason I'm asking is I saw this commit and it sounded like it expected metadata to be in a particular form: https://github.com/boot-clj/boot/commit/038d8dde09704e3d22b5cdfdd8be984825f04bf9