Comments (14)
Great - I'll dig in tomorrow and get a branch up for you to take a look at :)
from libpython-clj.
I'll look into it and ask around for options and report back :)
from libpython-clj.
@sanel that wouldn't be an issue and we'd be happy to maintain. Only issue is that deps.edn
can't build libpython-clj
because of the Java class files. So currently there's no really any point (that I know of) to a deps.edn
file!
from libpython-clj.
There are a lot of other benefits from deps.edn. It is becoming a popular build tool for people to use generally, has a faster start up time for repls, and has more benefits (see Rationale) . I think the template shown, has all the same functionality that lein is currently providing:
(From the repo)
- build jar,
- compile java sources,
- create pom,
- sign jar file
- local install to .m2
- deploy jar to clojars
- run tests using kaocha
It would be possible to just switch from lein
to clojure deps as the build tool and not have to maintain 2 dependency systems.
Happy to take some time to spike out a branch for you to check out with the changes. Just let me know.
from libpython-clj.
@cnuernber @jjtolton here is a WIP PR - please feel free to take it for a spin and feedback is most welcome 😸 #75
from libpython-clj.
Hi @gigasquid! Would absolutely love this as well but as far as I know, deps.edn
simply does not support the Java class building required for libpython-clj
. Since you brought it up I'll do a little bit more digging just to make sure I'm not crazy.
from libpython-clj.
https://clojurians.slack.com/archives/C6QH853H8/p1579876343024100
As of Jan 24th 2020
Sorry!! I'd love to have this move to deps.edn
too. If this ever changes then happy to support that!
Maybe we can find a different way to satisfy this requirement? Some kind of installer script perhaps?
from libpython-clj.
If I may suggest, why not keep both, or generate deps.edn
from project.clj
? Leiningen is pretty standard, more powerful and there is plugin for getting dependencies from git repos.
from libpython-clj.
There is a brand spanking new template out that looks like it handles javac for deps 🎉
(ht to Alex Miller to pointing it out to me)
https://github.com/mikeananev/slib
In particular - here is the aliases to compile jars with javac and just javac alone, etc...
https://github.com/mikeananev/slib/blob/master/resources/clj/new/slib/deps.edn#L50
I haven't tried it myself yet, but if it looks like a good direction to you - I'd be happy to experiment with it in the project to see if it works.
from libpython-clj.
Sure! And I'll do the same. I think this may not solve the :git/url
and :sha
requirements but a move towards deps.edn
is certainly something I'd be in support of. It don't expect it would be much trouble maintaining both in parallel since there's the lein plugin for deps.edn
.
from libpython-clj.
I can confirm that this does indeed compile libpython-clj
successfully! Just need a sign-off from @cnuernber on being okay to combine the plugin suggestion from @sanel with the toolset proposed by @gigasquid. I still don't think this will allow for direct github pull downs but it could be accomplished with cloning and then running clj -R:bg -A:javac
followed by REPL connection as normal (tested on Ubuntu/CIDER).
from libpython-clj.
I am curious as to whether it achieves the goal of the original post - Given this plugin, can you use use a :git/url
and sha
to pin a specific commit. I use the lein deps plugin elsewhere and it works fine, for sure, but it adds a small layer of indirection and if we aren't concretely getting anything out of that layer I would rather avoid it. On the other hand, if we can get benefit at all from moving to deps.edn + lein plugin I am down.
from libpython-clj.
Well, then, Yes please :-). Let's try it sounds worth it.
from libpython-clj.
Closing this for now. We will then need a build system on top of deps.edn and my current solution of using a project.clj that has the lein-deps plugin is clumsy. We can slow-burn research on this over time as it isn't pressing.
from libpython-clj.
Related Issues (20)
- Cannot run the example in the tutorial in Cider with JDK 17 HOT 8
- process hanging in embeded mode on exception HOT 2
- from-import does not support "string"
- newbie: I get: `dir already refers to: #'clojure.repl/dir in namespace: user` HOT 2
- Newbie: Lein Clojure Windows Anaconda VSCode Cava REPL Returns (NoClassDefFoundError) HOT 5
- Create Python Module then Import Module and Call Function Inside Clojure? HOT 4
- Fix ubuntu version in dockerfiles HOT 6
- Consider releasing returned values from instance fns
- JDK-20 support HOT 3
- builtins/eval throws 'frame does not exist' HOT 2
- Unable to require libraries from within docker using conda HOT 6
- Failed to find a valid python library on MS-Windows with the official python distributions
- Extend CI coverage to all the mainstream architectures
- require-python missing functions with annotation HOT 3
- Make polyglot development easier by allow require-python to be path-informed HOT 1
- Data transformation pipelines? HOT 1
- NSWindow main thread error when trying to setup Gymnasium (openapi gym) HOT 5
- JVM crashes when requiring `libpython-clj2.require` on 64bit Raspberry Pi 4 HOT 1
- error of unhashable type HOT 15
- Ways to reduce probability of memory leaks? HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from libpython-clj.