--
You received this message because you are subscribed to the Google Groups "Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAD%2BL2cztSkLq8a6oTqTFksgDGJneYjL3ORwv2Z5trqS67G2-1g%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAKeeVe4ZXoFuaX_Mvu1JfJb8zQuLLg8fTFEh2kMPpfSBphZvUQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CALeTM-n7u0T8L5Oc_iN9jzb0Z2q9TUCUYH0JgpgNho49E7cwBA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAE_u_P6AWxXhuwYxzLBAriek%2BiHFey36DuaT_TbVn2OD-Kw3fQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAJ97idHzofUK6CqSoFZFcB3jL9ezxMx-%3DMay29xwQeyMmddMKw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAO8YPTQiyfmPn3W2p7TqCcKnvVjQ2gfniTsQ9mSt53EC9JTy4g%40mail.gmail.com.
I totally support this effort. IMO, it's worth researching it even if it might not become the number one build tool for the Quarkus apps (there is actually no such objective at this point, afaiu).
--
You received this message because you are subscribed to the Google Groups "Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAD%2BL2cztSkLq8a6oTqTFksgDGJneYjL3ORwv2Z5trqS67G2-1g%40mail.gmail.com.
On 24 Aug 2021, at 23:30, Francois Green wrote:
Instead of a tool just for Quarkus, maybe Red Hat would consider
spearheading a community effort to create a lightweight build tool for
inclusion in the JDK itself, something along the lines of Remi Forax's Pro
Do you know how that relates to https://github.com/sormuras/bach btw ?
In any case, I wish it was that easy, but the JDK team have historically not wished to enter this area
(for somewhat good reasons imo).
I raised to the JDK team at least recognise notion of maven dependency mechanism which is basically what jbang does - enable javac and java to
grok maven dependencies and you can get very far - it will take time and probably not happen soon. I'll keep trying though.
/max
--
Bill Burke
Red Hat
--
You received this message because you are subscribed to the Google Groups "Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/7676d04a-3aaa-40f0-bdb4-30d5f56e96e9n%40googlegroups.com.
/max
https://xam.dk/about
On 25 Aug 2021, at 8:51, Georgios Andrianakis wrote:
To be clear:
I want to do *idea** . *and have everything automatically setup for me.
Will that work?
Yes, if you before that have run i.e. jbang edit
or maybe we make a quarkus edit
commond.
I am pretty sure that doesn't work with the jbang workflow... And FWIW when
I did try the IDE integration (a while back), things were not working for
me...
todays version of the above is
jbang edit --open=idea main.java
This is the command that today uses a temporary symbolic link generated project but which in future
will be updated to have the IDE required files put inside the project (just as you have them today when using normal maven/gradle project)
If we can get things to work (without *any* extra configuration on the
users part), then awesome (I personally don't use CLIs and I know I am not
the only one).
Can you explain what you mean here, calling idea .
or mvn package
is using a cli ...
If not, then I don't see the build tool part gaining any traction...
To be honest I think this issue of having fully working IDE integration from Day one is
too harsh a goal post to set. There is a trivial way to have it working and none of this
is forced upon anyone. Maven/Gradle is still the default and nothing of that will change.
IDE's supporting this natively will take time - but until then users can still use all
the usual features of IDE's by utilising the fact that IDE's today support maven/gradle fairly well.
If anything by doing the changes needed for this will improve the maven and gradle support too.
/max
wrote:
I think it would be really interesting to see done, in addition to
the
benefits of general refactoring.
Would be very interesting for small projects as well even for those
from
the Java landscape looking for a simple build process.
Ken
On Mon, Aug 23, 2021 at 8:36 PM Stuart Douglas <sdou...@redhat.com
To view this discussion on the web visit
https://groups.google.com/d/msgid/quarkus-dev/CAD%2BL2cztSkLq8a6oTqTFksgDGJneYjL3ORwv2Z5trqS67G2-1g%40mail.gmail.com>>>
<
https://groups.google.com/d/msgid/quarkus-dev/CAD%2BL2cztSkLq8a6oTqTFksgDGJneYjL3ORwv2Z5trqS67G2-1g%40mail.gmail.com?utm_medium=email&utm_source=footer.
--
You received this message because you are subscribed to the Google
Groups
"Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it,
send an
email to quarkus-dev...@googlegroups.com
To view this discussion on the web visit
https://groups.google.com/d/msgid/quarkus-dev/CAKeeVe4ZXoFuaX_Mvu1JfJb8zQuLLg8fTFEh2kMPpfSBphZvUQ%40mail.gmail.com>>
<
https://groups.google.com/d/msgid/quarkus-dev/CAKeeVe4ZXoFuaX_Mvu1JfJb8zQuLLg8fTFEh2kMPpfSBphZvUQ%40mail.gmail.com?utm_medium=email&utm_source=footer.
--
You received this message because you are subscribed to the Google
Groups "Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to quarkus-dev...@googlegroups.com
To view this discussion on the web visit
On 25 Aug 2021, at 8:51, Georgios Andrianakis wrote:
To be clear:
I want to do *idea** . *and have everything automatically setup for me.
Will that work?Yes, if you before that have run i.e.
jbang edit
or maybe we make aquarkus edit
commond.I am pretty sure that doesn't work with the jbang workflow... And FWIW when
I did try the IDE integration (a while back), things were not working for
me...todays version of the above is
jbang edit --open=idea main.java
This is the command that today uses a temporary symbolic link generated project but which in future
will be updated to have the IDE required files put inside the project (just as you have them today when using normal maven/gradle project)If we can get things to work (without *any* extra configuration on the
users part), then awesome (I personally don't use CLIs and I know I am not
the only one).Can you explain what you mean here, calling
idea .
ormvn package
is using a cli ...
If not, then I don't see the build tool part gaining any traction...
To be honest I think this issue of having fully working IDE integration from Day one is
too harsh a goal post to set. There is a trivial way to have it working and none of this
is forced upon anyone. Maven/Gradle is still the default and nothing of that will change.
IDE's supporting this natively will take time - but until then users can still use all
the usual features of IDE's by utilising the fact that IDE's today support maven/gradle fairly well.
If anything by doing the changes needed for this will improve the maven and gradle support too.
The main use case for this is to make quarkus more accessible to non java developers. There are a lot of mode developers who have no idea about maven or grade but will find this approach super familiar.It's not really about about replacing maven or grade, it's about making quarkus more accessible.
Hopefully it is ok for me to provide my two-cents on this topic as we just
made our first significant, and successful, deployment of a series of
Quarkus services from the ground up.
Definitely helpful! Hearing war stories is some of the best ways to improve :)
Your story below is (as I see it now) more about how to setup full CI pipelines which
for most part is actually build tool agnostic but definitely related and an area I'm
very keen to see if we can improve - if not by doing things at Quarkus level then at
least document/provide examples of possible setup.
For background, one of our goals with moving to Quarkus was to provide a
more level playing field across Java and non-Java developers. We also
wanted them to have more insight at the cluster level without necessarily
being a K8S expert. As a part of this, bringing in new services should be
a seamless process.
+1
In the 3-4 months we worked to establish our foundation a good part of that
has been the GitLab pipeline tooling and we have it down to a science but
here is what we wrestled with using Maven (not unlike any other large Maven
CI/CD process):
- Reconciling "versions" using Maven Deploy, Flatten, and the CI
"friendly" features - this was an absolute nightmare to get working.
This is for versions across plugins or for project dependencies ?
And whats the reason why you want it fully aligned ? out of principle or some
technical reason ?
We
have many services, not all versioned the same and orchestrating the core
service versions with user-driven services was one of the hardest
challenges in Maven. It would be nice to have some way in either the Maven
plugin or even Quarkus that lets us manage those versions easier.
if for dependencies if you use Quarkus universal platform which of these versions were not aligned for you ?
- From the CI/CD process managing and updating configurations, without a
ton of profiles, for everything - especially the generated K8S manifests.
In our world, we have development (merge-request) previews, snapshots, and
of course releases - depending on the pipeline numerous values can be
changed based on values out of the CI. We accomplish this rather elegantly
using S3 as a "group" and then in later jobs manipulating the configs prior
to the actual build steps. If there was a way to somewhat manage that
easier for a pipeline it would of been helpful.
Not following exactly what this is - maybe if you could share the setup I could grasp it better?
- To generate services, native or otherwise, we had to create an
additional pipeline dynamically outside of our main pipeline. At least in
the GL side, we lose some metrics because of this. So, something to control
building services better would be nice.
"generate services" ? as in building them ?
- Our biggest pain point right now, and not necessarily a Maven or
Quarkus issue, is the time to it takes to build/deploy. This starts at
about 10-15m just to go through our compile-to-readyForDeploy stages.
I'm curious on why it takes that long...what is taken up the time ?
I assume it is not just native compile you have issues with?
Basically for us, anything revolving around configuration during the build
process would be of interest. Firstly, if it eases Maven integration or
even applies it behind the scenes so developer dont even have to use it
would be helpful and help us get more adoption. Second, configuration
thought of at the CI/CD level where a "test" run vs. a "service" run vs. a
"deploy" run can be easier configured - this would need to take into
account coordinating OAS and K8S configurations along with the native
executable itself. Finally, anything the speeds up our pipeline specific
to the CI/CD process.We only use Maven because we have to. Not because we like it or find it
overly efficient/helpful especially in CI/CD pipelines. Anything potential
that could replace it we would be interested in and even willing to
contribute. I can even share what we are doing if it helps.
That would be great.
/max
On Wednesday, August 25, 2021 at 5:56:26 AM UTC-4 gand...@redhat.com wrote:
On Wed, Aug 25, 2021 at 12:30 PM Stuart Douglas sdou...@redhat.com
wrote:The main use case for this is to make quarkus more accessible to non java
developers. There are a lot of mode developers who have no idea about maven
or grade but will find this approach super familiar.It's not really about about replacing maven or grade, it's about making
quarkus more accessible.Color me a sceptic, but as I said before, I'm glad to work on this with
you folks and try to make the possible experience out of it.
Stuart
On Wed, 25 Aug 2021, 6:30 pm Georgios Andrianakis, gand...@redhat.com
wrote:
On Wed, Aug 25, 2021 at 11:04 AM Max Rydahl Andersen mand...@redhat.com
wrote:
To be clear:
I want to do idea* . *and have everything automatically setup for
me.
Will that work?
Yes, if you before that have run i.e. jbang edit or maybe we make a
quarkus
edit commond.I am pretty sure that doesn't work with the jbang workflow... And
FWIW
when
I did try the IDE integration (a while back), things were not
working
for
me...todays version of the above is
jbang edit --open=idea main.java
This is the command that today uses a temporary symbolic link
generated
project but which in future
will be updated to have the IDE required files put inside the project
(just as you have them today when using normal maven/gradle project)
If we can get things to work (without any extra configuration on
the
users part), then awesome (I personally don't use CLIs and I know I
am not
the only one).
Can you explain what you mean here, calling idea . or mvn package is
using a cli ...
If we really want to get technical, no idea is not a CLI.
If anything by doing the changes needed for this will improve the
You received this message because you are subscribed to the Google
To unsubscribe from this group and stop receiving emails from it, send an email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/2f55197d-8c27-4d40-9f86-7ed003d06b77n%40googlegroups.com.
/max
https://xam.dk/about
Hopefully it is ok for me to provide my two-cents on this topic as we just
made our first significant, and successful, deployment of a series of
Quarkus services from the ground up.Definitely helpful! Hearing war stories is some of the best ways to improve :)
Your story below is (as I see it now) more about how to setup full CI pipelines which
for most part is actually build tool agnostic but definitely related and an area I'm
very keen to see if we can improve - if not by doing things at Quarkus level then at
least document/provide examples of possible setup.For background, one of our goals with moving to Quarkus was to provide a
more level playing field across Java and non-Java developers. We also
wanted them to have more insight at the cluster level without necessarily
being a K8S expert. As a part of this, bringing in new services should be
a seamless process.+1
In the 3-4 months we worked to establish our foundation a good part of that
has been the GitLab pipeline tooling and we have it down to a science but
here is what we wrestled with using Maven (not unlike any other large Maven
CI/CD process):
- Reconciling "versions" using Maven Deploy, Flatten, and the CI
"friendly" features - this was an absolute nightmare to get working.
This is for versions across plugins or for project dependencies ?
And whats the reason why you want it fully aligned ? out of principle or some
technical reason ?We
have many services, not all versioned the same and orchestrating the core
service versions with user-driven services was one of the hardest
challenges in Maven. It would be nice to have some way in either the Maven
plugin or even Quarkus that lets us manage those versions easier.
if for dependencies if you use Quarkus universal platform which of these versions were not aligned for you ?
- From the CI/CD process managing and updating configurations, without a
ton of profiles, for everything - especially the generated K8S manifests.
In our world, we have development (merge-request) previews, snapshots, and
of course releases - depending on the pipeline numerous values can be
changed based on values out of the CI. We accomplish this rather elegantly
using S3 as a "group" and then in later jobs manipulating the configs prior
to the actual build steps. If there was a way to somewhat manage that
easier for a pipeline it would of been helpful.Not following exactly what this is - maybe if you could share the setup I could grasp it better?
- To generate services, native or otherwise, we had to create an
additional pipeline dynamically outside of our main pipeline. At least in
the GL side, we lose some metrics because of this. So, something to control
building services better would be nice."generate services" ? as in building them ?
- Our biggest pain point right now, and not necessarily a Maven or
Quarkus issue, is the time to it takes to build/deploy. This starts at
about 10-15m just to go through our compile-to-readyForDeploy stages.I'm curious on why it takes that long...what is taken up the time ?
I assume it is not just native compile you have issues with?
Less Maven dependencies themselves and more orchestrating "service" versions. This especially becomes challenging when services are isolated but through clients need to communicate to other services for a full e2e run. For example, I have a project service(s) at v2.0.0 and a data service(s) at v1.0.0, that talks to project services vis RESTclient. The happy path, this works great - it gets complicated when in the pipeline, an MR is "versioned" differently and that cascades across the build. End result, Maven comes into play at each project which requires some Maven knowledge. In addition, some way to be able to "bootstrap" a variety or services (we have started to gravitate towards Wiremock) as a single "server" would go a long way in making the process smoother (we do have something like this and it works really well for local development).
And whats the reason why you want it fully aligned ? out of principle or some
technical reason ?We
have many services, not all versioned the same and orchestrating the core
service versions with user-driven services was one of the hardest
challenges in Maven. It would be nice to have some way in either the Maven
plugin or even Quarkus that lets us manage those versions easier.This is tough for me to explain properly and I may have to revisit my answer. We deploy about ~20 something services. It almost becomes an issue tying together artifacts such as OAS documentation, K8S manifests, Ingress locations more so than orchestrating the services. At a developer level, we have crafter a "bootstrap" which composes all of the services into a single runtime to minimize having so many dependencies (service or maven). BUT, any orchestration that requires manipulating Maven (use versions or dependencies for example) almost always causes an issue for non-Java/Maven developers. From the DevOps side, we heavily use the Maven CI-friendly approach, which is half-baked but better than the Release approach, and that has been a considerable pain point for us in the initial setup especially when the parent of one project is not necessarily driving another project.
if for dependencies if you use Quarkus universal platform which of these versions were not aligned for you ?
- From the CI/CD process managing and updating configurations, without a
ton of profiles, for everything - especially the generated K8S manifests.
In our world, we have development (merge-request) previews, snapshots, and
of course releases - depending on the pipeline numerous values can be
changed based on values out of the CI. We accomplish this rather elegantly
using S3 as a "group" and then in later jobs manipulating the configs prior
to the actual build steps. If there was a way to somewhat manage that
easier for a pipeline it would of been helpful.Not following exactly what this is - maybe if you could share the setup I could grasp it better?
- To generate services, native or otherwise, we had to create an
additional pipeline dynamically outside of our main pipeline. At least in
the GL side, we lose some metrics because of this. So, something to control
building services better would be nice."generate services" ? as in building them ?
Even though Quarkus is our primary service, we have other services in Node, Python, even plain-old Java/Spring. Each of these is "triggered" as external pipelines that spin off the main pipeline. This gives us a "building" block approach and makes crafting CI/CD consistent regardless of the stack. Also, a better shown than I can explain item ;).
- Our biggest pain point right now, and not necessarily a Maven or
Quarkus issue, is the time to it takes to build/deploy. This starts at
about 10-15m just to go through our compile-to-readyForDeploy stages.I'm curious on why it takes that long...what is taken up the time ?
I assume it is not just native compile you have issues with?No, it is not you its me ;) I am not sure what it is. We did standardize on use of @QuarkusTest (better than explaining use it here but dont use it here for regular JUnit - especially to new or non-Java developers). The 10-15 minutes to run a non-native build may be related to the AWS EC2 class we are using but locally the same build is pretty hefty too. Even on my local machine which is beefy it takes a while (2-3 minutes for 100+ test cases right now).
Here, it appears a bulk of the time is taken during the startup of Quarkus for the test runs.We are doing some investigation here and taking apart our test process to see if the result vary drastically. For example, does removing Jacoco help. The variance though from my local to AWS we believe has to do with the infrastructure and not anything to do with the code.If this is the price of consistency we can live with a 30-60m build because it is a single-click operation and well worth the time.Testing native (even building native) is challenging and since we just got burned on @RegisterForReflection (as a note, every deploy we get hit on this one) we are working out a process to ease this and tooling to help test better/quicker.
Basically for us, anything revolving around configuration during the build
process would be of interest. Firstly, if it eases Maven integration or
even applies it behind the scenes so developer dont even have to use it
would be helpful and help us get more adoption. Second, configuration
thought of at the CI/CD level where a "test" run vs. a "service" run vs. a
"deploy" run can be easier configured - this would need to take into
account coordinating OAS and K8S configurations along with the native
executable itself. Finally, anything the speeds up our pipeline specific
to the CI/CD process.We only use Maven because we have to. Not because we like it or find it
overly efficient/helpful especially in CI/CD pipelines. Anything potential
that could replace it we would be interested in and even willing to
contribute. I can even share what we are doing if it helps.That would be great.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAF1TLv7_VW58zddvYnskK%3DnNSjrm206jSP8kSJdRvz7JXvx1VQ%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAD%2BL2czJa%2B5x0oCW-buem_7YDUbAmaJEY4KNFJ2_Y8ek-OUosQ%40mail.gmail.com.
>This sounds kinda like DevServices, we have been talking about adding a more generic approach to dev services that allows you to spin up arbitrary docker images as part of dev/test, does this sound useful?Isn't that what TestContainer is?
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAFif860ph8NTHbXHNTyufJE-22B6eDA2W%2By48AJ-f_367U5%2BrQ%40mail.gmail.com.
I raised to the JDK team at least recognise notion of maven dependency mechanism which is basically what jbang does - enable javac and java to
grok maven dependencies and you can get very far - it will take time and probably not happen soon. I'll keep trying though.
--
You received this message because you are subscribed to a topic in the Google Groups "Quarkus Development mailing list" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/quarkus-dev/4FSp4aKciEc/unsubscribe.
To unsubscribe from this group and all its topics, send an email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAKU9E9sMM3z0pKXr_4yvAbyjWphgcKbNEdgDofbyiUf00Z-Kcw%40mail.gmail.com.
On 24 Aug 2021, at 19:56, William Burke wrote:
> +1 here, but it has to have more than incremental improvements over
> maven/gradle. Think like developing functions/lambdas where you don't
> write any pom.xml code and you dont have to do everythign in one file
> like
> jbang.
jbang supported multiple files for over a year now - just saying :)
> And an extension system that can also resolve tooling. I've
> discussed this before.
"resolve tooling" ?
you do realise jbang's integration works by an extension model ?
> This should all be in conjunction with CLI.
> Would be worth it to experiment with this to see if it gains any
> traction.
> I'll reiterate again: must leapfrog maven/gradle, nobody will buy
> into
> incremental improvements.
leapfrog in what way ? as in have all the features maven/gradle has with
super flexible multi module project notions or
in being super easy to use and work extremely well for microservice
style apps and can easily pick up existing maven/gradle generated
artefacts if needed ?
--
You received this message because you are subscribed to the Google Groups "Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/0e82c5da-5df4-478f-be56-835c32847876n%40googlegroups.com.
Big +1 on making Quarkus easier to use.Just for quick reference as to how the layout of a Play 1 application was:conf/application.conf (config)dependencies.yml (list of line-separated mvn coordinates, with some fancy options: https://www.playframework.com/documentation/1.3.x/dependency)messages.en (I18N)routes (external text-based routing, not applicable for us, though we did discuss it some times, but out of the scope of this discussion)app/ (source code, no TLDN package prefix necessary)
controllers/ (REST endpoints)model/ (DB models)test/ (test source code)Not saying we have to copy this, we don't. But it's a comparison to how easy/compact the initial layout can be when it's not Maven/Gradle.If I can get my project created and running with something like this, I'll be happy:$ cd $HOME/src# Create an app called test-app with the following extensions and sample code$ q create test-app resteasy-reactive,hibernate-reactive-panache,graphql$ cd test-app# Start dev mode, generate whatever pom.xml file is needed for Eclipse (or IDEA or whatever) to grok my project setup$ q dev --eclipse# Build me a jar$ q jar# Build me a native exec$ q native
And that's it. Well, that and probably we will indeed need something to _turn_ it into a real Maven/Gradle project (not just pretend for the sake of the IDE): $ q regress --mavenAnd if we really are serious about catering to non-Java devs, we will indeed have to fix the issues brought up about Java not having a landing page for beginners, but that'd be a win anyway.
It would be pretty sweet if you could embed WireMock or the equivalent into the CLI, as a container, etc. That way I could spin up a service with no hard dependencies stand-alone. I could then distribute the "mocks" to take the place of real remote service calls. Actually any way that let's me pretend I have all the services when developing a new one that requires interaction.
--
On Fri, 27 Aug 2021 at 00:05, KimJohn Quinn <k...@logicdrop.com> wrote:It would be pretty sweet if you could embed WireMock or the equivalent into the CLI, as a container, etc. That way I could spin up a service with no hard dependencies stand-alone. I could then distribute the "mocks" to take the place of real remote service calls. Actually any way that let's me pretend I have all the services when developing a new one that requires interaction.We can do this as a Quarkus extension, in a similar way we do for Dev Services. Just auto start wiremock in dev/test mode.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAD%2BL2czB3hDg8hC4RfSSDqgonkE1HZNy%2BCF71fLZJmUVnmgV1w%40mail.gmail.com.
from $CWD which is very outdated. That would help everyone.
Can you outline what you mean ? one of the reasons jbang been able to be so nimble is that javac default source lookup is relative to $CWD;
for output yes - here jbang redirects it to its little own internal place to not pollute.
/max
https://xam.dk/about
+1 here, but it has to have more than incremental improvements over
maven/gradle. Think like developing functions/lambdas where you don't
write any pom.xml code and you dont have to do everythign in one file
like
jbang.jbang supported multiple files for over a year now - just saying :)
And an extension system that can also resolve tooling. I've
discussed this before."resolve tooling" ?
you do realise jbang's integration works by an extension model ?
This should all be in conjunction with CLI.
Would be worth it to experiment with this to see if it gains any
traction.
I'll reiterate again: must leapfrog maven/gradle, nobody will buy
into
incremental improvements.+1 to JBang. But, JBang would be greatly improved by a custom quarkus
build system wouldn't it?
Yes, and to be clear it already has it BUT is currently "blocked" because of the limitations in core that stuart highlighted in
the initial mail. JBang can already today utilise the container building, code generation etc. features of Quarkus but because
of Quarkus core having assumptions about maven/gradle setup and does not let extensions know about it enough extensions that uses
i.e. decorate fails with jbang thus Kubernetes/OpenShift deployment currently does not work - and would be really kludgy to fix atm.
By "resolving tooling", I mean this: If you think of quarkus, what it
automatically does now is it resolves "maven plugins" (analogy here).
Simple, but pretty powerful right when you think about it? Its great to
not have to google for whatever the maven plugin is and look through the
always crappy maven documentation, etc.Would be cool if we could also automatically resolve IDE tooling, CLI
extensions, etc. all by just declaring one dependency.
Yes, I get this but there is a chicken and egg issue here on having (all) tooling resolving its plugins from Quarkus current dependency - it requires
things to be resolvable and runnable before the project is actually there...so (at least for now) I do believe the tooling wiring needs a bootstrap that
is independent from Quarkus.
I think we can get very far here if quarkus core gets opened up - as lots of tooling is perfectly fine to resolve from quarkus dependency mechanism.
Not sure at what point we absolutely need the "flip" to where quarkus drives but
I can see cases where it makes sense....its part of what this effort would reveal.
leapfrog in what way ? as in have all the features maven/gradle has with
super flexible multi module project notions or
in being super easy to use and work extremely well for microservice
style apps and can easily pick up existing maven/gradle generated
artefacts if needed ?Leapfrog would be I don't have to worry about or know pom syntax and the
auto-resolving I talked about before.
Right now I just know //DEPS and looking up right quarkus properties to enable the various tools - won't scale forever but its refreshing for now at least :)
/max
https://xam.dk/about
Big +1 on making Quarkus easier to use.
Just for quick reference as to how the layout of a Play 1 application was:
conf/
application.conf (config)
dependencies.yml (list of line-separated mvn coordinates, with some fancy
options: https://www.playframework.com/documentation/1.3.x/dependency)
messages.en (I18N)
routes (external text-based routing, not applicable for us, though we did
discuss it some times, but out of the scope of this discussion)
app/ (source code, no TLDN package prefix necessary)
controllers/ (REST endpoints)
model/ (DB models)
test/ (test source code)Not saying we have to copy this, we don't. But it's a comparison to how
easy/compact the initial layout can be when it's not Maven/Gradle.If I can get my project created and running with something like this, I'll
be happy:$ cd $HOME/src
Create an app called test-app with the following extensions and sample
code
$ q create test-app resteasy-reactive,hibernate-reactive-panache,graphql
its:
quarkus create -x resteasy-reactive,hibernate-reactive-panache,graphql test-app
$ cd test-app
Start dev mode, generate whatever pom.xml file is needed for Eclipse (or
IDEA or whatever) to grok my project setup
$ q dev --eclipse
hooking IDE generation into quarkus dev mode is a nice idea. Thats one place where
enabling quarkus to call into jbang as a "library" would help.
note, I would probably just have it generate it no matter what or call it quarkus dev --ide
Build me a jar
$ q jar
quarkus package
Build me a native exec
$ q native
quarkus package --native
And that's it. Well, that and probably we will indeed need something to
turn it into a real Maven/Gradle project (not just pretend for the sake
of the IDE): $ q regress --maven
nice name :)
I'm going to add this to jbang shortly - I already done it once but lost the branch (don't ask; i'm still traumatised :)
And if we really are serious about catering to non-Java devs, we will
indeed have to fix the issues brought up about Java not having a landing
page for beginners, but that'd be a win anyway.
+100
/max
https://xam.dk/about
On 27 Aug 2021, at 10:05, Stephane Epardaud wrote:
For jbang perhaps it makes sense, but most people still prefer to tuck
their sources in a subfolder, usually
src
(notsrc/main/java
). I guess
some autodetection (check if pom.xml or other such marker exists) or
convention-over-configuration (check if src, src/main/java folder exists,
etc…) would solve the issue.
Note that the new behaviour could even be in a
new JDK tool rather than change the behaviour of javac. It would just
invoke javac with different defaults. Hell, if it were aj compile
tool
it would even be better ;)
You are basically describing where jbang and the suggested quarkus as build tool is going.
the alias is j!
btw :)
/max
On Fri, 27 Aug 2021 at 08:37, Max Rydahl Andersen mand...@redhat.com
wrote:On 26 Aug 2021, at 15:13, Stephane Epardaud wrote:
On Wed, 25 Aug 2021 at 00:52, Max Rydahl Andersen mand...@redhat.com
wrote:I raised to the JDK team at least recognise notion of maven dependency
mechanism which is basically what jbang does - enable javac and java to
grok maven dependencies and you can get very far - it will take time
and probably not happen soon. I'll keep trying though.Huge +1 from me about this. And change the default source lookup and output
from $CWD which is very outdated. That would help everyone.Can you outline what you mean ? one of the reasons jbang been able to be
so nimble is that javac default source lookup is relative to $CWD;
for output yes - here jbang redirects it to its little own internal place
to not pollute./max
https://xam.dk/about--
Stéphane Épardaud
/max
https://xam.dk/about
We have thought about this actually.
The reason we haven't done it is that we wanted to tie it in with the rest client, but we didn't figure out a way to make it super useful
Georgios,We have thought about this actually.
The reason we haven't done it is that we wanted to tie it in with the rest client, but we didn't figure out a way to make it super usefulThis is exactly the scenario we are looking to do ;). Almost all of our services talk to at least one other service (locator-like service) using the REST Client. We have keep the services relatively isolated and expect the use of the REST client to grow which is where it would be useful for development.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAF1TLv6kgbfgX4pKeiEDy59%2BHyN4%2BuVGnS-2YDN9UMT4wmF8Rw%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CALeTM-%3Dnw0WW-Xui1t7EcbhvfMSmF0PNMXitZRDOoLuTcBpzHg%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CALeTM-k21rCVQ2xEZi_Y-i0h2BUVRF3yP27r3jLdUMK0JDNmiA%40mail.gmail.com.
Loïc, come on ;) Make? Come on :)I've written some pretty crazy Makefiles myself over the years, some even recursive with eval and stuff. Let's not get there. Makefiles should be left alone in their retirement magnetic tapes in the Arctic Vault, they're living a happy end of life there along with ed, cc and autotools. Let's not disturbe them unduly, they've done their part ;)
IIUC, the goal is to simplify things, not make them more complicated. Bazel is not definitely not simple :)
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CALeTM-k21rCVQ2xEZi_Y-i0h2BUVRF3yP27r3jLdUMK0JDNmiA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CALbocOnfbuFTRUyri%3Dha020J2g0%3DqL9KHoneY2SLAQXEQLudiQ%40mail.gmail.com.
On 31 Aug 2021, at 17:18, Loïc MATHIEU wrote:
Well, OK make is old, but my point is to use something developers already
know (so maybe not make but only a makefile) to lower the barrier to using
a new tool.
makefiles are actually surprisingly useful - especially if you just use it for what its good at.
I've had feisty discussions with a few people arguing that they want make because there is very
little a make file can do - it just list the commands you want to run..thats it.
maven is the opposite - it does not list the commands that are run - its somewhat declarative.
people chooses different poison.
Stuart
Create an app called test-app with the following extensions
and sample code
$ q create test-app
resteasy-reactive,hibernate-reactive-panache,graphql
$ cd test-app
Start dev mode, generate whatever pom.xml file is needed for
Eclipse (or IDEA or whatever) to grok my project setup
$ q dev --eclipse
Build me a jar
$ q jar
Build me a native exec
$ q native
And that's it. Well, that and probably we will indeed need
something to turn it into a real Maven/Gradle project (not just pretend
for the sake of the IDE): $ q regress --maven
And if we really are serious about catering to non-Java devs,
we will indeed have to fix the issues brought up about Java not having a
landing page for beginners, but that'd be a win anyway.
--
You received this message because you are subscribed to the
Google Groups "Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from
it, send an email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/quarkus-dev/0e82c5da-5df4-478f-be56-835c32847876n%40googlegroups.com
--
You received this message because you are subscribed to the
Google Groups "Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from
it, send an email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit
--
You received this message because you are subscribed to the Google
Groups "Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit
You received this message because you are subscribed to the Google
Groups "Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit
You received this message because you are subscribed to the Google Groups
"Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit
--
You received this message because you are subscribed to the Google Groups "Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAJLxjVF2nEUtZf7U5bX3kXNhfsWBDmWmPoKV0ma8AWtMfYNS9g%40mail.gmail.com.
/max
https://xam.dk/about
On 31 Aug 2021, at 17:38, Ladislav Thon wrote:
út 31. 8. 2021 v 16:17 odesílatel Georgios Andrianakis gand...@redhat.com
napsal:IIUC, the goal is to simplify things, not make them more complicated.
Bazel is not definitely not simple :)I intentionally tried to stay away from this thread, but I just can't
anymore :-) In my opinion, something like Bazel (or Buck) is exactly what
the Java ecosystem needs, except it shouldn't look so alien and should
natively integrate with Maven repositories. I actually think the Quarkus
core infrastructue (aside: what happened to the PR that moved Quarkus to
Qlue?) is pretty well suited to implementing that. It would be a waste of
potential to only implement something trivial to cater for people coming
from other ecosystems (aside: the word "simple" is way too overloaded, see
also Simple Made Easy by Rich Hickey).
you are trying to solve the generic global build challenge if you are trying to apply bazel/buck to things here - thats explicitly not what this is about IMO.
I could see something like bazel/buck build system call into a quarkus/jbang build just fine.
Assuming I remember rightly how bazel/buck works ;)
/max
Stuart
Create an app called test-app with the following extensions
and sample code
$ q create test-app
resteasy-reactive,hibernate-reactive-panache,graphql
$ cd test-app
Start dev mode, generate whatever pom.xml file is needed for
Eclipse (or IDEA or whatever) to grok my project setup
$ q dev --eclipse
Build me a jar
$ q jar
Build me a native exec
$ q native
And that's it. Well, that and probably we will indeed need
something to turn it into a real Maven/Gradle project (not just pretend
for the sake of the IDE): $ q regress --maven
And if we really are serious about catering to non-Java devs,
we will indeed have to fix the issues brought up about Java not having a
landing page for beginners, but that'd be a win anyway.
--
You received this message because you are subscribed to the
Google Groups "Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from
it, send an email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit
https://groups.google.com/d/msgid/quarkus-dev/0e82c5da-5df4-478f-be56-835c32847876n%40googlegroups.com
--
You received this message because you are subscribed to the
Google Groups "Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit
--
You received this message because you are subscribed to the Google
Groups "Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it,
send an email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit
You received this message because you are subscribed to the Google
Groups "Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit
You received this message because you are subscribed to the Google Groups
"Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it, send an
email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit
--
You received this message because you are subscribed to the Google Groups "Quarkus Development mailing list" group.
To unsubscribe from this group and stop receiving emails from it, send an email to quarkus-dev...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CALbocOnfbuFTRUyri%3Dha020J2g0%3DqL9KHoneY2SLAQXEQLudiQ%40mail.gmail.com.
/max
https://xam.dk/about
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAJLxjVEtup8B0G3m_-YV%2BEEP1A_Zsuce_szFpUsRY2ASk2fwwQ%40mail.gmail.com.
As an initial sceptic myself, I have warmed up to the idea, but I am assuming we are talking about something entirely new, but similar to what exists for example in the Node.js space and therefore easy to pick up for developers knowledgeable of that sort of ecosystem
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAF1TLv7y8-kiwF_6gmSQQxVhqq0tRRdbUq3nMShH3T4mdd%3DAFA%40mail.gmail.com.
If possible, I'd like this tool to resolve Git URLs (including tags and branches) as project dependencies (as GoLang and jitpack.io do).
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAMmsnJi7o8TVUyLt%3D237ObCu837mi9EMGis6f9HHcvZNUjHTAA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAMmsnJi7o8TVUyLt%3D237ObCu837mi9EMGis6f9HHcvZNUjHTAA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/ef6d52cb-3030-40f2-bfc7-30e57d0956c0%40Spark.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/98465f23-4bc2-46d4-9671-4aef50d91b5fn%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/quarkus-dev/CAMmsnJhAHe77s8xyDsO3eOYDvdKyy9febLEuyia%3D7OHDOSpQQA%40mail.gmail.com.