On Mon, Oct 9, 2017 at 10:23 AM, Mark Thomas <[email protected]> wrote:
> On 06/10/17 13:01, Rémy Maucherat wrote: > > On Fri, Oct 6, 2017 at 10:18 AM, Mark Thomas <[email protected]> wrote: > > > >> The usual candidate for an alternative build system is Maven. The > >> argument for Maven is that it is more widely known and hence easier to > >> get started with. The argument against is broadly that Maven is very > >> opinionated and they way Tomcat currently does things is not consistent > >> with what Maven expects and some things (e.g. the Windows installer) are > >> well outside the typical Maven build. Therefore switching to Maven would > >> require a fair amount of effort. > >> > >> I'd like to suggest a third alternative: Gradle. The argument for Gradle > >> is that it can boot-strap itself so, unlike Ant, a new user doesn't need > >> to download the build tool. Gradle can also import Ant build files so we > >> could start with a simple Gradle script that simply imported the current > >> Ant script and then migrate slowly over time. The argument against is > >> that it isn't as widely known as Maven. > >> > >> > >> My own views are neutral at this point on modularisation. I don't have > >> any immediate suggestions for changes but I'd like to hear what ideas > >> others have. On build systems, I'm not convinced that the benefits of > >> switching to Maven justify the costs. Gradle looks promising and I do > >> like the boot-strapping feature. If there was consensus to move to > >> Gradle, I'd be willing to help that process. > >> > > On Java 9 modularisation I'm super neutral too. Especially since it > > wouldn't bring anything to Tomcat IMO. > > For Java 9 modules, I can see some benefits to defining Java 9 modules > to be consistent with the names and dependencies we already have. > Primarily, if a user adds a module (not using Maven) then they'll get > notified about missing dependencies when they try and build it. That is > about the only benefit I can see though and it is a fairly small one. > > > On the build and source structure, I'd say the first decision should be > > another yes/no on Maven, since that's what everyone else has been asking > > about. Then if it's still a no, we can make another decision on Gradle. > > I remain unconvinced that the benefits of switching to Maven would > justify the costs. > > The previous experiments have shown that it is not practical to keep the > current source code structure and use Maven. > > See: > http://svn.apache.org/viewvc/tomcat/sandbox/trunk-mvn-build > > It is 6 years old (and for 7.0.24) but you get the idea. Note that: > - I had to build and run with Java 7 to avoid various class version > issues > - It is incomplete (e.g. no Windows Installer build) > > Benefits: > > - More widely known, so easier/faster for newcomers to pick up > > - Standard project structure makes it easier/faster for newcomers to > navigate > > - Producing OSGI bundles would be simpler > > - Bootstrap wrapper available > > Costs: > > - The code would need to be split into multi-modules > > - Back-ports would become more difficult unless all currently supported > versions were also back-ported (which increases the costs of > transition) > > - If we change the layout of the currently supported versions, that will > create costs for downstream packagers > > - We'd need to write a code-signing plug-in for Maven > > - We'd need to write a plug-in to use NSIS or continue to use Ant for > the Windows Installer > > > Overall, I remain firmly unconvinced that a move to Maven is in the best > interests of Apache Tomcat. The time that would be required to migrate > to Maven would be significant and would disrupt the project for an > extended period of time (my expectation is several months). It would > also disrupt down-stream users. That is a significant cost. While I > don't deny there are potential benefits, those benefits are - in my view > - significantly smaller than the associated costs. > > Another concern is that switching to Maven would not be a small, > reversible change. It would be reversible but the effort required, both > to make the change and to reverse it, would not be small. > > I haven't seem any significant movement from the last time we discussed > this so I don't think we need a vote or anything. That said, I've no > objection to a vote being held if a committer wishes to call one. > Yes, if there's a switch to maven, then Tomcat has to become something resembling a Maven project (IMO), with a non monolithic source tree. So it seems you don't like it any more than before, so then it looks like it's still a "no" for maven. Your arguments are reasonable especially for maintenance of previous branches. Poor Maven, he may start being depressed after being rejected so often ;) Rémy > > Mark > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > >
