[CMake] CPack 101

Bill Hoffman bill.hoffman at kitware.com
Thu Dec 23 09:30:26 EST 2010


On 12/23/2010 8:44 AM, Mike McQuaid wrote:
> On 23 December 2010 13:24, David Cole<david.cole at kitware.com>  wrote:
>> How do we make it very hard? What about KDE and Homebrew make this very
>> easy? Specifics, please.

>
> I think for you guys general guidelines on what patches would/wouldn't
> be accepted would be a good start. Documentation of your coding
> standards and what I should do to test my work before submitting it
> would help too. I can guess a fair amount because I've contributed to
> a lot of open-source projects but others might not do the same.
>
> I think the main thing that I find lacking here though is
> responsiveness to suggestions. When I make one, I need to keep poking
> again and again until I receive I response. Other things include
> specific code review of patches and a quick "this functionality
> would/wouldn't be accepted" when suggestions are made so I know
> whether to work on it or not.
>
> I think using Git/Github in your workflow could help with part of this
> but a certain amount will need to be responding to users, either
> through your current bug tracker, a better one or Github's issue
> tracker.
>
> Another option that might help is a cmake-dev mailing list that is
> only for discussing development issues rather than users seeking help.
>

Something like this perhaps:

http://www.cmake.org/cmake/help/mailing.html
http://public.kitware.com/cgi-bin/mailman/listinfo/cmake-developers


The way I see it, there are two types of contributions.

1. You have already written some code that does something you need for 
your project.

2. You have a suggestion for a change that you would like to see but 
have not done.


These two cases are treated differently.  Here is the workflow I would 
would like to see for them:

1. you have some code.
    The biggest thing that slows down adoption of new code in CMake is 
lack of testing.   New features that are not tested, are not welcome 
into CMake.  If the code has a CMake test and there is good dashboard 
coverage for the test, then the code will be adopted much quicker.  The 
code can be done on github or gitorious.org, or just a patch attached to 
a bug entry in the CMake bug tracker.  If a cmake developer can just 
merge in the code, and run ctest to test the new code, it makes it very 
easy to commit.

2. You have a suggestion for a change but no code.
I think there are two sub-cases for this as well:
   A. You are willing to write the code yourself.
   B. You think that someone else should write it for you.

For A, you would want to get buy in from the developers and community 
before starting the code.  For this the cmake-developers mailing list 
would be the place to start.  Although, sometimes it might make sense to 
float the idea on the cmake mailing list first to see what the community 
things, and then use the developers list for implementation details.

For B, you have to do a pretty good sales job for the work to be done. 
You are basically asking for a handout.  Kitware does not directly 
invest in CMake, new features developed by Kitware come from Kitware 
customers requesting them.  So, you can hire Kitware (become a 
customer), or if your suggestion lines up with the needs of an existing 
customer, you might get lucky.  Of course Kitware people are not the 
only ones developing CMake, you might be able to convince someone else 
to do the work.  Either way, this is the hardest type of change to have 
made.

In summary, Kitware and the CMake developers outside Kitware have been 
working on being more inclusive.  We realize that our process needs to 
include more of the community.  Recently we have made several changes in 
order to include more outside help on the CMake project.  Those changes 
are as follows:

1. We moved to git

2. We moved to a quarterly release schedule.

3. After each release we send out and email to the cmake and 
cmake-developers list, and ask for people to suggest the things they 
would like to see in the next release.  Here is the current list:
http://public.kitware.com/Bug/roadmap_page.php.  Next release is 
scheduled for Jan. 10.

4. We have directed all new bugs on the bug tracker to the 
cmake-developers list.  This allows all developers to see new issues as 
they come in.

5. We have made an effort to clean up old stuff in the bug tracker.


So, if you have time that you want to spend on CMake development, join 
the cmake-developers mailing list.  Write some tested, documented code 
and contribute it.

Thanks.


-Bill


More information about the CMake mailing list