You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4cxx-dev@logging.apache.org by Robert Middleton <os...@gmail.com> on 2016/08/07 00:51:57 UTC

Release Procedure

I took a look at the release procedure today and ran into quite a few
problems.  It seems that Maven and autotools don't work well together.
This was an attempt to get around using the cpptasks from Ant to build
log4cxx, as the cpptasks try to build APR and APR-util without using
autotools.

This is a very convoluted process that I did, but I managed to get it to be
reproducible.  This does use a modified POM:
https://gist.github.com/rm5248/25302e2c36df4e24e4ffb56484e78190  The
changes in the POM:

   1. change the SCM so it commits to a local SVN repo for testing purposes.
   2. purge all of the ant tasks.  Replaced with maven-exec-plugin commands
   3. updated a few plugins, although that may have broken some stuff(the
   website looks all funky at this point)

Procedure:

   1. Download maven 3.3.9 (Debian 8 has only 3.0.5, which does not work
   properly for some reason)
   2. run: /path/to/mvn3.3.9 release:prepare.  Fill in what you can; this
   will fail when it tries to clean the project.
   3. run: /path/to/mvn3.3.3 initialize.  This will run the initial
   autotools.
   4. run: /path/to/mvn3.3.9 release:prepare
   5. run: /path/to/mvn3.3.9 release:perform

Once you have done step 5, there will be a tar.gz and zip under
target/checkout/target.  The website is under
target/checkout/target/site(there's also a site-deploy which appears to
contain the exact same files).

Caveats at this point:

   - website looks all weird(my guess is dueling CSS files)
   - Doxygen docs have not been copied to the website directory
   - the tar.gz does not grab the install-sh for some reason - it is listed
   in the assembly/source.xml, but it is not grabbed for some reason.

I'm sure that there's a C++/autotools project that is successfully using
maven to do this procedure, I just don't know of one off the top of my head.

At this point, I have a few questions:

   1. What is the POM here for?  As far as I can tell, the only important
   things it needs to do are to create the website, and use the
   maven-release-plugin to automatically create a tag in SVN.
   2. Are there any C++ projects successfully doing this?
   3. Why is the distribution not made with autotools(since it already has
   the capability of creating a tar.gz and zip files)
   4. How was this done in the first place?  According to the SVN log,
   carnold was the last person to create an actual release(8 years ago!)(he
   did apparently use the maven-release-plugin though, the commit message says
   so)


-Robert Middleton

Re: Release Procedure

Posted by Robert Middleton <os...@gmail.com>.
I spent a bit of time coming up with a simple script for doing the release,
and this is what I came up with:
https://gist.github.com/rm5248/f8a0838bf9d03e0e6104bec41374e284

Basically, it will go and prompt for the current revision and new SNAPSHOT
revision(like Maven), tag what is in the trunk, checkout the new tag into
another folder and build it.  Once it does that, it generates the tar.gz
and zip files in addition to the website.  It also updates the version in
the pom.xml, so it should stay aligned.

It's not particularly complicated, but it does what Maven does in terms of
SVN tagging and version information.

-Robert Middleton

On Tue, Aug 9, 2016 at 4:39 PM, Robert Middleton <os...@gmail.com>
wrote:

> Ralph,
>
> If you want to take a look at it, I can walk you through what exactly I
> did to try and get it to work.
>
> -Robert Middleton
>
> On Tue, Aug 9, 2016 at 1:59 AM, Ralph Goers <ra...@dslextreme.com>
> wrote:
>
>> If you abandon using Maven that is fine, but if you need some help I’d be
>> happy to look at it when I can. Curt probably used a Maven 2.x release as
>> 3.x is pretty recent. You might try using the latest of that and see where
>> it takes you.
>>
>> Ralph
>>
>> On Aug 7, 2016, at 6:38 PM, Robert Middleton <os...@gmail.com> wrote:
>>
>> On Sun, Aug 7, 2016 at 5:57 AM, Thorsten Schöning <ts...@am-soft.de>
>>  wrote:
>>
>>> Guten Tag Robert Middleton,
>>> am Sonntag, 7. August 2016 um 02:51 schrieben Sie:
>>>
>>> > I took a look at the release procedure today and ran into quite a
>>> > few problems.
>>>
>>> A big "Thank you!" for your efforts. So in the end, it sounds like you
>>> vote for dropping Maven/Ant stuff altogether for the build and
>>> release? I think the only thing it's really necessary for is the
>>> creation of the site, Apidocs and such.
>>>
>>> Looking at the time you already invested, this might be the point to
>>> just let things go. I don't see when I have the time to rebuild things
>>> myself and this is only about the first release, there should be
>>> others in the future as well. :-) And even if the technical side
>>> works, there's that signing and voting stuff and such...
>>>
>>
>> I would agree with that.  I don't know enough about Maven to properly fix
>> the problem, I know just enough to do what I have to do. Most of my Maven
>> knowledge comes from looking at what other people have done.
>>
>> The release process should be able to be accomplished with a small shell
>> script that ensures that everything builds properly, creates the website
>> and tags the code appropriately(this is basically what Maven should be
>> doing)
>>
>>
>>>
>>> >   1. What is the POM here for?  As far as I can tell, the only
>>> important
>>> >   things it needs to do are to create the website, and use the
>>> >   maven-release-plugin to automatically create a tag in SVN.
>>>
>>> I can only guess the same, simply that Maven provided needed plugins
>>> to generate the web site and was therefore used as a starting point
>>> for everything else.
>>>
>>> >   2. Are there any C++ projects successfully doing this?
>>>
>>> I have no idea.
>>>
>>> >   3. Why is the distribution not made with autotools(since it already
>>> has
>>> >   the capability of creating a tar.gz and zip files)
>>>
>>> I have no idea, my feeling is that carnold came from the Java world,
>>> used what he already knew and added things as needed by users. And in
>>> theory this whole ANT/cpptasks thing doesn't look bad, I could run it
>>> with some minor changes on my Windows using Visual Studio including
>>> building APR stuff around 2 years ago.
>>>
>>> >   4. How was this done in the first place?  According to the SVN log,
>>> >   carnold was the last person to create an actual release(8 years
>>> ago!)(he
>>> >   did apparently use the maven-release-plugin though, the commit
>>> message says
>>> >   so)
>>>
>>> I have no idea, I guess it simply worked using maven and started to
>>> not work anymore over time. There were other issues with the build
>>> process in the past as well.
>>>
>>
>> This would make sense to me. The build system has basically diverged in
>> the years since the last official release, so it's not too surprising that
>> it wouldn't work properly(although in an ideal world it should!)
>>
>>
>>>
>>> Mit freundlichen Grüßen,
>>>
>>> Thorsten Schöning
>>>
>>> --
>>> Thorsten Schöning       E-Mail: Thorsten.Schoening@AM-SoFT.de
>>> <Th...@am-soft.de>
>>> AM-SoFT IT-Systeme      http://www.AM-SoFT.de/ <http://www.am-soft.de/>
>>>
>>> Telefon...........05151-  9468- 55
>>> Fax...............05151-  9468- 88
>>> Mobil..............0178-8 9468- 04
>>>
>>> AM-SoFT GmbH IT-Systeme, Brandenburger Str. 7c, 31789 Hameln
>>> AG Hannover HRB 207 694 - Geschäftsführer: Andreas Muchow
>>
>>
>>
>

Re: Release Procedure

Posted by Robert Middleton <os...@gmail.com>.
Ralph,

If you want to take a look at it, I can walk you through what exactly I did
to try and get it to work.

-Robert Middleton

On Tue, Aug 9, 2016 at 1:59 AM, Ralph Goers <ra...@dslextreme.com>
wrote:

> If you abandon using Maven that is fine, but if you need some help I’d be
> happy to look at it when I can. Curt probably used a Maven 2.x release as
> 3.x is pretty recent. You might try using the latest of that and see where
> it takes you.
>
> Ralph
>
> On Aug 7, 2016, at 6:38 PM, Robert Middleton <os...@gmail.com> wrote:
>
> On Sun, Aug 7, 2016 at 5:57 AM, Thorsten Schöning <ts...@am-soft.de>
> wrote:
>
>> Guten Tag Robert Middleton,
>> am Sonntag, 7. August 2016 um 02:51 schrieben Sie:
>>
>> > I took a look at the release procedure today and ran into quite a
>> > few problems.
>>
>> A big "Thank you!" for your efforts. So in the end, it sounds like you
>> vote for dropping Maven/Ant stuff altogether for the build and
>> release? I think the only thing it's really necessary for is the
>> creation of the site, Apidocs and such.
>>
>> Looking at the time you already invested, this might be the point to
>> just let things go. I don't see when I have the time to rebuild things
>> myself and this is only about the first release, there should be
>> others in the future as well. :-) And even if the technical side
>> works, there's that signing and voting stuff and such...
>>
>
> I would agree with that.  I don't know enough about Maven to properly fix
> the problem, I know just enough to do what I have to do. Most of my Maven
> knowledge comes from looking at what other people have done.
>
> The release process should be able to be accomplished with a small shell
> script that ensures that everything builds properly, creates the website
> and tags the code appropriately(this is basically what Maven should be
> doing)
>
>
>>
>> >   1. What is the POM here for?  As far as I can tell, the only important
>> >   things it needs to do are to create the website, and use the
>> >   maven-release-plugin to automatically create a tag in SVN.
>>
>> I can only guess the same, simply that Maven provided needed plugins
>> to generate the web site and was therefore used as a starting point
>> for everything else.
>>
>> >   2. Are there any C++ projects successfully doing this?
>>
>> I have no idea.
>>
>> >   3. Why is the distribution not made with autotools(since it already
>> has
>> >   the capability of creating a tar.gz and zip files)
>>
>> I have no idea, my feeling is that carnold came from the Java world,
>> used what he already knew and added things as needed by users. And in
>> theory this whole ANT/cpptasks thing doesn't look bad, I could run it
>> with some minor changes on my Windows using Visual Studio including
>> building APR stuff around 2 years ago.
>>
>> >   4. How was this done in the first place?  According to the SVN log,
>> >   carnold was the last person to create an actual release(8 years
>> ago!)(he
>> >   did apparently use the maven-release-plugin though, the commit
>> message says
>> >   so)
>>
>> I have no idea, I guess it simply worked using maven and started to
>> not work anymore over time. There were other issues with the build
>> process in the past as well.
>>
>
> This would make sense to me. The build system has basically diverged in
> the years since the last official release, so it's not too surprising that
> it wouldn't work properly(although in an ideal world it should!)
>
>
>>
>> Mit freundlichen Grüßen,
>>
>> Thorsten Schöning
>>
>> --
>> Thorsten Schöning       E-Mail: Thorsten.Schoening@AM-SoFT.de
>> <Th...@am-soft.de>
>> AM-SoFT IT-Systeme      http://www.AM-SoFT.de/ <http://www.am-soft.de/>
>>
>> Telefon...........05151-  9468- 55
>> Fax...............05151-  9468- 88
>> Mobil..............0178-8 9468- 04
>>
>> AM-SoFT GmbH IT-Systeme, Brandenburger Str. 7c, 31789 Hameln
>> AG Hannover HRB 207 694 - Geschäftsführer: Andreas Muchow
>
>
>

Re: Release Procedure

Posted by Ralph Goers <ra...@dslextreme.com>.
If you abandon using Maven that is fine, but if you need some help I’d be happy to look at it when I can. Curt probably used a Maven 2.x release as 3.x is pretty recent. You might try using the latest of that and see where it takes you.

Ralph

> On Aug 7, 2016, at 6:38 PM, Robert Middleton <os...@gmail.com> wrote:
> 
> On Sun, Aug 7, 2016 at 5:57 AM, Thorsten Schöning <tschoening@am-soft.de <ma...@am-soft.de>> wrote:
> Guten Tag Robert Middleton,
> am Sonntag, 7. August 2016 um 02:51 schrieben Sie:
> 
> > I took a look at the release procedure today and ran into quite a
> > few problems.
> 
> A big "Thank you!" for your efforts. So in the end, it sounds like you
> vote for dropping Maven/Ant stuff altogether for the build and
> release? I think the only thing it's really necessary for is the
> creation of the site, Apidocs and such.
> 
> Looking at the time you already invested, this might be the point to
> just let things go. I don't see when I have the time to rebuild things
> myself and this is only about the first release, there should be
> others in the future as well. :-) And even if the technical side
> works, there's that signing and voting stuff and such...
> 
> I would agree with that.  I don't know enough about Maven to properly fix the problem, I know just enough to do what I have to do. Most of my Maven knowledge comes from looking at what other people have done.
> 
> The release process should be able to be accomplished with a small shell script that ensures that everything builds properly, creates the website and tags the code appropriately(this is basically what Maven should be doing)
>  
> 
> >   1. What is the POM here for?  As far as I can tell, the only important
> >   things it needs to do are to create the website, and use the
> >   maven-release-plugin to automatically create a tag in SVN.
> 
> I can only guess the same, simply that Maven provided needed plugins
> to generate the web site and was therefore used as a starting point
> for everything else.
> 
> >   2. Are there any C++ projects successfully doing this?
> 
> I have no idea.
> 
> >   3. Why is the distribution not made with autotools(since it already has
> >   the capability of creating a tar.gz and zip files)
> 
> I have no idea, my feeling is that carnold came from the Java world,
> used what he already knew and added things as needed by users. And in
> theory this whole ANT/cpptasks thing doesn't look bad, I could run it
> with some minor changes on my Windows using Visual Studio including
> building APR stuff around 2 years ago.
> 
> >   4. How was this done in the first place?  According to the SVN log,
> >   carnold was the last person to create an actual release(8 years ago!)(he
> >   did apparently use the maven-release-plugin though, the commit message says
> >   so)
> 
> I have no idea, I guess it simply worked using maven and started to
> not work anymore over time. There were other issues with the build
> process in the past as well.
> 
> This would make sense to me. The build system has basically diverged in the years since the last official release, so it's not too surprising that it wouldn't work properly(although in an ideal world it should!)
>  
> 
> Mit freundlichen Grüßen,
> 
> Thorsten Schöning
> 
> --
> Thorsten Schöning       E-Mail: Thorsten.Schoening@AM-SoFT.de
> AM-SoFT IT-Systeme      http://www.AM-SoFT.de/ <http://www.am-soft.de/>
> 
> Telefon...........05151-  9468- 55
> Fax...............05151-  9468- 88
> Mobil..............0178-8 9468- 04
> 
> AM-SoFT GmbH IT-Systeme, Brandenburger Str. 7c, 31789 Hameln
> AG Hannover HRB 207 694 - Geschäftsführer: Andreas Muchow


Re: Release Procedure

Posted by Robert Middleton <os...@gmail.com>.
On Sun, Aug 7, 2016 at 5:57 AM, Thorsten Schöning <ts...@am-soft.de>
wrote:

> Guten Tag Robert Middleton,
> am Sonntag, 7. August 2016 um 02:51 schrieben Sie:
>
> > I took a look at the release procedure today and ran into quite a
> > few problems.
>
> A big "Thank you!" for your efforts. So in the end, it sounds like you
> vote for dropping Maven/Ant stuff altogether for the build and
> release? I think the only thing it's really necessary for is the
> creation of the site, Apidocs and such.
>
> Looking at the time you already invested, this might be the point to
> just let things go. I don't see when I have the time to rebuild things
> myself and this is only about the first release, there should be
> others in the future as well. :-) And even if the technical side
> works, there's that signing and voting stuff and such...
>

I would agree with that.  I don't know enough about Maven to properly fix
the problem, I know just enough to do what I have to do. Most of my Maven
knowledge comes from looking at what other people have done.

The release process should be able to be accomplished with a small shell
script that ensures that everything builds properly, creates the website
and tags the code appropriately(this is basically what Maven should be
doing)


>
> >   1. What is the POM here for?  As far as I can tell, the only important
> >   things it needs to do are to create the website, and use the
> >   maven-release-plugin to automatically create a tag in SVN.
>
> I can only guess the same, simply that Maven provided needed plugins
> to generate the web site and was therefore used as a starting point
> for everything else.
>
> >   2. Are there any C++ projects successfully doing this?
>
> I have no idea.
>
> >   3. Why is the distribution not made with autotools(since it already has
> >   the capability of creating a tar.gz and zip files)
>
> I have no idea, my feeling is that carnold came from the Java world,
> used what he already knew and added things as needed by users. And in
> theory this whole ANT/cpptasks thing doesn't look bad, I could run it
> with some minor changes on my Windows using Visual Studio including
> building APR stuff around 2 years ago.
>
> >   4. How was this done in the first place?  According to the SVN log,
> >   carnold was the last person to create an actual release(8 years
> ago!)(he
> >   did apparently use the maven-release-plugin though, the commit message
> says
> >   so)
>
> I have no idea, I guess it simply worked using maven and started to
> not work anymore over time. There were other issues with the build
> process in the past as well.
>

This would make sense to me. The build system has basically diverged in the
years since the last official release, so it's not too surprising that it
wouldn't work properly(although in an ideal world it should!)


>
> Mit freundlichen Grüßen,
>
> Thorsten Schöning
>
> --
> Thorsten Schöning       E-Mail: Thorsten.Schoening@AM-SoFT.de
> AM-SoFT IT-Systeme      http://www.AM-SoFT.de/
>
> Telefon...........05151-  9468- 55
> Fax...............05151-  9468- 88
> Mobil..............0178-8 9468- 04
>
> AM-SoFT GmbH IT-Systeme, Brandenburger Str. 7c, 31789 Hameln
> AG Hannover HRB 207 694 - Geschäftsführer: Andreas Muchow
>
>

Re: Release Procedure

Posted by Thorsten Schöning <ts...@am-soft.de>.
Guten Tag Robert Middleton,
am Sonntag, 7. August 2016 um 02:51 schrieben Sie:

> I took a look at the release procedure today and ran into quite a
> few problems.

A big "Thank you!" for your efforts. So in the end, it sounds like you
vote for dropping Maven/Ant stuff altogether for the build and
release? I think the only thing it's really necessary for is the
creation of the site, Apidocs and such.

Looking at the time you already invested, this might be the point to
just let things go. I don't see when I have the time to rebuild things
myself and this is only about the first release, there should be
others in the future as well. :-) And even if the technical side
works, there's that signing and voting stuff and such...

>   1. What is the POM here for?  As far as I can tell, the only important
>   things it needs to do are to create the website, and use the
>   maven-release-plugin to automatically create a tag in SVN.

I can only guess the same, simply that Maven provided needed plugins
to generate the web site and was therefore used as a starting point
for everything else.

>   2. Are there any C++ projects successfully doing this?

I have no idea.

>   3. Why is the distribution not made with autotools(since it already has
>   the capability of creating a tar.gz and zip files)

I have no idea, my feeling is that carnold came from the Java world,
used what he already knew and added things as needed by users. And in
theory this whole ANT/cpptasks thing doesn't look bad, I could run it
with some minor changes on my Windows using Visual Studio including
building APR stuff around 2 years ago.

>   4. How was this done in the first place?  According to the SVN log,
>   carnold was the last person to create an actual release(8 years ago!)(he
>   did apparently use the maven-release-plugin though, the commit message says
>   so)

I have no idea, I guess it simply worked using maven and started to
not work anymore over time. There were other issues with the build
process in the past as well.

Mit freundlichen Grüßen,

Thorsten Schöning

-- 
Thorsten Schöning       E-Mail: Thorsten.Schoening@AM-SoFT.de
AM-SoFT IT-Systeme      http://www.AM-SoFT.de/

Telefon...........05151-  9468- 55
Fax...............05151-  9468- 88
Mobil..............0178-8 9468- 04

AM-SoFT GmbH IT-Systeme, Brandenburger Str. 7c, 31789 Hameln
AG Hannover HRB 207 694 - Geschäftsführer: Andreas Muchow