Re: [HEADS UP] Jakarta 10 migration

2022-11-26 Thread Claus Ibsen
Hi

After the 3.20 LTS release (next month in a few weeks) then we can cross
over and make the main branch for Camel v4.
I am just wonder if we then need to setup temporary stuff at all, or can go
on until 3.20 is released (eg we can start earlier when the VOTE starts and
we have a tag in git).


On Sat, Nov 26, 2022 at 8:47 AM Otavio Rodolfo Piske 
wrote:

> Hello,
>
> This looks cool. Please let me know if you would like some help setting up
> the github actions. We have some of them that you can use as a starting
> point and maybe you can tweak them for that.
>
> If you believe these branches are going to be active for a while, there's
> another thing you might want to consider: adding a CI job for that. We
> should be able to add one in our CI at Apache. I can also give you some
> pointers for that.
>
> Kind regards
>
> On Fri, Nov 25, 2022 at 10:15 PM Guillaume Nodet 
> wrote:
>
> > I've begun working on the Jakarta 10 migration.
> > I tried with a 4.x branch [1], but it's difficult to maintain with the
> > number of commits in the main branch.  So I decided to switch to a
> > different mechanism.
> > I've created several branches upstream :
> >  * jakarta-rewrite [2] : contains a migration shell script [3] to be
> > executed regularly (I'll try to setup a github action at some point in
> the
> > near future).  This scripts uses perl regular expressions and git to
> > perform most of the upgrade.  When executed, the script will first rebase
> > on top of the main branch, run the migration and force push to the
> > jakarta-rewritten branch
> >  * jakarta-rewritten [4] : contains the migrated code. The idea is to
> have
> > it regularly and automatically updated and run to have an idea of the
> > current state.  It's not yet buildable !
> >   * jarkarta-jetty [5] : contains one commit [6] to be merged as part of
> > the migration executed by the script [7].  Other branches may be set up
> as
> > needed.  Those are used for things that can't be done with simple shell
> > commands.
> >
> > I'll keep you posted !
> >
> > Cheers,
> > Guillaume
> >
> > [1] https://github.com/apache/camel/pull/8579
> > [2] https://github.com/apache/camel/tree/jakarta-rewrite
> > [3]
> >
> https://github.com/apache/camel/blob/jakarta-rewrite/jakarta/transform.sh
> > [4] https://github.com/apache/camel/tree/jakarta-rewritten
> > [5] https://github.com/apache/camel/tree/jakarta-jetty
> > [6]
> >
> >
> https://github.com/apache/camel/commit/e5aea792291557b86b10eb84b978b381c2d94be6
> > [7]
> >
> >
> https://github.com/apache/camel/blob/8c60590d18542665e5048780f674d499f900c604/jakarta/transform.sh#L224
> >
> > 
> > Guillaume Nodet
> >
>
>
> --
> Otavio R. Piske
> http://orpiske.net
>


-- 
Claus Ibsen
-
@davsclaus
Camel in Action 2: https://www.manning.com/ibsen2


Re: Camel 4 roadmap and affect on Camel 3

2022-11-26 Thread Andrea Cosentino
Hello

I'll come back for other questions. Let me just say that camel-karaf is too
hard to maintain today. If it won't be released because of misalignments,
it should be aligned by some volunteers or community member and released
later. Active contributors are not really focused on Karaf runtime and we
cannot do everything. This doesn't mean we won't release camel Karaf
anymore. It only means it could be released later on. Even after the core
camel and SB part have been released.

In more than one situation aligning OSGi stuff have been really hard. Less
and less community members are helping on the Karaf side and releasing
sometimes have been slow down by these troubles. Also OSGi have been drop
in a lot of 3rd party libraries.

So I'm +1 with this approach.

I'll continue the discussion in the next days for the other points.

Cheers


Il ven 25 nov 2022, 15:06 Nicolas Filotto  ha scritto:

> Hi Claus,
>
> That sounds like a good plan, here are the first questions that I have in
> mind:
>
>   *   Why do we need to keep on releasing new LTS versions of Camel 3?
>   *   Why not simply consider 3.20 as the last LTS version of Camel 3 and
> only maintain it?
>   *   What kind of features/improvements do you want to add to Camel 3
> after releasing 3.20?
>   *   If camel-karaf is released independently, when will it be released?
> My fear is that it will be desynchronized with Camel very quickly.
>   *
>
> With 2 LTS of Camel 3 and 2 LTS of Camel 4 per year, it would mean 4 LTS
> versions to support at the same time, don't you think that it is too many?
>
> I'm wondering if it is not a good opportunity to rethink our LTS version
> policy. Could you please remind me why we decided to have this policy (2
> LTS versions per year supported for one year)?
>
> I would personally prefer to have:
>
>   *   only one LTS version per year (or 2 if we keep on releasing LTS
> versions of Camel 3) but supported for at least 2 years instead of one
> otherwise Camel users are less inclined to migrate to the latest LTS
> version because 1 year of support doesn't really worth the migration
> effort, especially for big projects where the migration takes several
> months.
>   *   only propose milestone versions or equivalent between 2 LTS versions
> for early adopters to add more clarity on which versions are LTS. Indeed,
> for example, the next LTS version will be 3.20 while we could expect 3.22
> to be the next one after 3.14 and 3.18. With this logic, instead of
> releasing 3.19 and 3.20, we could have released 3.19 M1 and 3.19, it would
> then be obvious to the Camel users that only 3.19 is an LTS version as all
> final versions would then be LTS versions.
>
> What do you think of it?
>
> Regards,
> Nicolas
> 
> From: Claus Ibsen 
> Sent: Friday, November 25, 2022 11:42
> To: dev 
> Subject: Camel 4 roadmap and affect on Camel 3
>
> Hi
>
> This is a proposal for a plan for Apache Camel 4 and how this can affect
> Camel 3.
>
> Summary
>
> ===
>
> The overall scope is that the leap from Camel 3 to 4 is a lot less than
> going from Camel 2 to 3.
>
> And that we have a timebox approach where we aim for a 6 month period of
> work.
>
> The need for Camel v4 is mainly driven by Java open source projects
> migrating to jakarta APIs,
>
> and to keep up with popular runtimes a la Spring Boot and Quarkus, and to
> jump to the next major Java version.
>
> Goals
>
> =
>
> a) Primary Goals
>
> 1) Migrate from javax -> jakarta (JEE 10)
>
> 2) Java 17 as base line
>
> 3) Spring Framework 6
>
> 4) Spring Boot 3
>
> 5) Quarkus 3
>
> b) Release Goals
>
> 6) Release only what is ready (JEE10 / Java17 etc)
>
> This means that Camel components that are not ready (yet) will be
> dropped in a release until they are ready.
>
> 7)  Release core + spring boot together
>
> 8)  Release camel-karaf independently (like we do for other Camel projects)
>
> c) Major Goals
>
> 9) Support Java 17 features such as records, multiline strings, and what
> else
>
> 10) EIP model without JAXB dependency
>
> 11) Endpoint URI parsing (do not use java.net.URI)
>
> 12) Deprecate message.getIn()
>
>   use getMessage() instead
>
> 13) Deprecate camel-cdi
>
> 14) Deprecate/Remove MDC logging (complex and buggy and does not fit modern
> app development)
>
> d) Minor Goals
>
> 15) Remove MEP InOptionalOut (not in use)
>
> 16) Remove JUnit 4 support
>
>
> Timeline
>
> ===
>
> The timelines are ESTIMATES and the number of releases can vary depending
> on need and how far we are in the process
>
> Feb 2023: Camel 4.0 milestone 1
>
> Mar 2023: Camel 4.0 milestone 2
>
> Apr 2023: Camel 4.0 RC1
>
> May 2023: Camel 4.0
>
> Aug 2023: Camel 4.1 LTS
>
> Oct 2023: Camel 4.2
>
> Dec 2023: Camel 4.3 LTS
>
> The plan is to start working on Camel 4 after the next Camel 3 LTS release,
> e.g. 3.20 which is planned for next month (December 2022).
>
> For Camel 3 then we slow down in releases and provide 2 LTS releases per
> year.
>
> For