https://public.kitware.com/Wiki/api.php?action=feedcontributions&user=Hans-johnson%40uiowa.edu&feedformat=atomKitwarePublic - User contributions [en]2024-03-29T15:27:44ZUser contributionsMediaWiki 1.38.6https://public.kitware.com/Wiki/index.php?title=ITK_Release_4/Modern_C%2B%2B&diff=58463ITK Release 4/Modern C++2015-11-15T15:09:06Z<p>Hans-johnson@uiowa.edu: </p>
<hr />
<div>= Goal =<br />
<br />
* Take advantage of advances in C++<br />
<br />
= Path =<br />
<br />
* Target popular compilers that are compatible with the C++98 and/or C++03 standard (http://en.wikipedia.org/wiki/C%2B%2B03#Language_standard). <br />
<br />
= Specifics =<br />
<br />
The following lists specify what compilers will be supported and what compilers will not be supported in the first release of ITKv4.<br />
<br />
== Will Not Support ==<br />
<br />
Specifically remove support for <br />
<br />
* Visual Studio 6.0<br />
* Visual Studio 7.0<br />
* 7.1 (Until 2012) <br />
* 8 SP 1 (Until 2015)<br />
* Borland version 5.5<br />
* Sun Studio compilers prior to 5.9<br />
* IRIX compilers<br />
* Metrowerks Codewarrior compilers<br />
* cygwin 1.5 (newer versions may work, but are not being targeted)<br />
* gcc prior to 3.4<br />
* Darwin ppc (Until 2015)<br />
<br />
== Will Support ==<br />
As a general statement, we support compilers that submit nightly to the [http://www.cdash.org/CDash/index.php?project=Insight ITK dashboard]. Currently these include:<br />
<br />
=== Fully Committed to Support ===<br />
<br />
* GCC 4.x<br />
* Visual Studio<br />
** 9 (Until 2018)<br />
** 10 (Until 2020)<br />
** 11 (Until 2022)<br />
** 12 (Until 2023)<br />
** 13 (Until 2025)<br />
* Intel Compiler Suite<br />
** 11.x<br />
** 12.x<br />
* Darwin-c++-4.2<br />
** x86_64<br />
* MacOSX-icc-rel <br />
* Win32-mingw-gcc-4.5<br />
* clang<br />
<br />
<br />
The following table illustrate the phase-out schedule of multiple compilers.<br />
<br />
The stage "If community supported" means that ITK will only support that compiler if volunteers from the community commit to submitting Nightly Dashboard builds and to address/fix any problem that may arise in those platforms.<br />
<br />
{| border="0"<br />
|Compiler<br />
|2011<br />
|2012<br />
|2013<br />
|2014<br />
|2015<br />
|2016<br />
|2017<br />
|2018<br />
|2019<br />
|2020<br />
|2021<br />
|2022<br />
|2023<br />
|2024<br />
|2025<br />
|2026<br />
|-<br />
|[[http://en.wikipedia.org/wiki/Microsoft_Visual_Studio#Version_history|"VisualStudio 7.1"]]<br />
|colspan="1" bgcolor="green"|<br />
|colspan="1" bgcolor="yellow"|<br />
|colspan="5" bgcolor="red"|<br />
|-<br />
|Visual Studio 8<br />
|colspan="3" bgcolor="green"|<br />
|colspan="1" bgcolor="yellow"|<br />
|colspan="5" bgcolor="red"|<br />
|-<br />
|Visual Studio 9<br />
|colspan="8" bgcolor="green"|<br />
|colspan="1" bgcolor="yellow"|<br />
|colspan="5" bgcolor="red"|<br />
|-<br />
|Visual Studio 10<br />
|colspan="10" bgcolor="green"|<br />
|colspan="1" bgcolor="yellow"|<br />
|colspan="3" bgcolor="red"|<br />
|-<br />
|GCC 3.4<br />
|colspan="1" bgcolor="green"|<br />
|colspan="1" bgcolor="yellow"|<br />
|colspan="5" bgcolor="red"|<br />
|-<br />
|GCC 4.2<br />
|colspan="5" bgcolor="green"|<br />
|colspan="1" bgcolor="yellow"|<br />
|colspan="5" bgcolor="red"|<br />
|-<br />
|GCC 4.4<br />
|colspan="8" bgcolor="green"|<br />
|colspan="1" bgcolor="yellow"|<br />
|colspan="5" bgcolor="red"|<br />
|-<br />
|GCC 4.9<br />
|colspan="14" bgcolor="green"|<br />
|colspan="1" bgcolor="yellow"|<br />
|colspan="5" bgcolor="red"|<br />
|}<br />
<br />
=== Legend ===<br />
<br />
{| border="0"<br />
|Label|<br />
|-<br />
|colspan="2" bgcolor="green"|Fully Supported<br />
|-<br />
|colspan="2" bgcolor="yellow"|Phase Out<br />
|-<br />
|colspan="2" bgcolor="red"|If community supported<br />
|}</div>Hans-johnson@uiowa.eduhttps://public.kitware.com/Wiki/index.php?title=ITK_Release_4/Modern_C%2B%2B&diff=58462ITK Release 4/Modern C++2015-11-15T15:07:56Z<p>Hans-johnson@uiowa.edu: /* Fully Committed to Support */</p>
<hr />
<div>= Goal =<br />
<br />
* Take advantage of advances in C++<br />
<br />
= Path =<br />
<br />
* Target popular compilers that are compatible with the C++98 and/or C++03 standard (http://en.wikipedia.org/wiki/C%2B%2B03#Language_standard). <br />
<br />
= Specifics =<br />
<br />
The following lists specify what compilers will be supported and what compilers will not be supported in the first release of ITKv4.<br />
<br />
== Will Not Support ==<br />
<br />
Specifically remove support for <br />
<br />
* Visual Studio 6.0<br />
* Visual Studio 7.0<br />
* Borland version 5.5<br />
* Sun Studio compilers prior to 5.9<br />
* IRIX compilers<br />
* Metrowerks Codewarrior compilers<br />
* cygwin 1.5 (newer versions may work, but are not being targeted)<br />
* gcc prior to 3.4<br />
<br />
== Will Support ==<br />
As a general statement, we support compilers that submit nightly to the [http://www.cdash.org/CDash/index.php?project=Insight ITK dashboard]. Currently these include:<br />
<br />
=== Fully Committed to Support ===<br />
<br />
* GCC 4.x<br />
* Visual Studio<br />
** 9 (Until 2018)<br />
** 10 (Until 2020)<br />
** 11 (Until 2022)<br />
** 12 (Until 2023)<br />
** 13 (Until 2025)<br />
* Intel Compiler Suite<br />
** 11.x<br />
** 12.x<br />
* Darwin-c++-4.2<br />
** ppc (Until 2015)<br />
** x86_64<br />
* MacOSX-icc-rel <br />
* Win32-mingw-gcc-4.5<br />
* clang<br />
<br />
<br />
The following table illustrate the phase-out schedule of multiple compilers.<br />
<br />
The stage "If community supported" means that ITK will only support that compiler if volunteers from the community commit to submitting Nightly Dashboard builds and to address/fix any problem that may arise in those platforms.<br />
<br />
{| border="0"<br />
|Compiler<br />
|2011<br />
|2012<br />
|2013<br />
|2014<br />
|2015<br />
|2016<br />
|2017<br />
|2018<br />
|2019<br />
|2020<br />
|2021<br />
|2022<br />
|2023<br />
|2024<br />
|2025<br />
|2026<br />
|-<br />
|[[http://en.wikipedia.org/wiki/Microsoft_Visual_Studio#Version_history|"VisualStudio 7.1"]]<br />
|colspan="1" bgcolor="green"|<br />
|colspan="1" bgcolor="yellow"|<br />
|colspan="5" bgcolor="red"|<br />
|-<br />
|Visual Studio 8<br />
|colspan="3" bgcolor="green"|<br />
|colspan="1" bgcolor="yellow"|<br />
|colspan="5" bgcolor="red"|<br />
|-<br />
|Visual Studio 9<br />
|colspan="8" bgcolor="green"|<br />
|colspan="1" bgcolor="yellow"|<br />
|colspan="5" bgcolor="red"|<br />
|-<br />
|Visual Studio 10<br />
|colspan="10" bgcolor="green"|<br />
|colspan="1" bgcolor="yellow"|<br />
|colspan="3" bgcolor="red"|<br />
|-<br />
|GCC 3.4<br />
|colspan="1" bgcolor="green"|<br />
|colspan="1" bgcolor="yellow"|<br />
|colspan="5" bgcolor="red"|<br />
|-<br />
|GCC 4.2<br />
|colspan="5" bgcolor="green"|<br />
|colspan="1" bgcolor="yellow"|<br />
|colspan="5" bgcolor="red"|<br />
|-<br />
|GCC 4.4<br />
|colspan="8" bgcolor="green"|<br />
|colspan="1" bgcolor="yellow"|<br />
|colspan="5" bgcolor="red"|<br />
|-<br />
|GCC 4.9<br />
|colspan="14" bgcolor="green"|<br />
|colspan="1" bgcolor="yellow"|<br />
|colspan="5" bgcolor="red"|<br />
|}<br />
<br />
=== Legend ===<br />
<br />
{| border="0"<br />
|Label|<br />
|-<br />
|colspan="2" bgcolor="green"|Fully Supported<br />
|-<br />
|colspan="2" bgcolor="yellow"|Phase Out<br />
|-<br />
|colspan="2" bgcolor="red"|If community supported<br />
|}</div>Hans-johnson@uiowa.eduhttps://public.kitware.com/Wiki/index.php?title=ITK/Fall_v4_2011_Meeting&diff=42760ITK/Fall v4 2011 Meeting2011-09-05T21:56:41Z<p>Hans-johnson@uiowa.edu: /* Attendance Matrix */</p>
<hr />
<div>ITKv4 Fall Meeting<br />
<br />
*'''Dates: September 27-28, 2011, Work day September 29, 2011'''<br />
** Start Time: 0800 (TBD), September 27<br />
** End Time: 1600 (TBD), September 28<br />
** Hackathon: 0800-1700 (TBD), September 29<br />
*'''City: Bethesda, MD'''<br />
*'''Location: NLM'''<br />
<br />
UPDATE: The hotel rooming block will be available until Wednesday, September 7, 2011.<br />
<br />
== Travel / Hotel Information ==<br />
<br />
NEW - The reservation deadline for the rooming block has been extended until September 7, 2011.<br />
<br />
The code for the block of rooms is '''"ITK"'''<br />
<br />
The Meeting will take place at the NLM in Bethesda, MD<br />
<br />
A block of hotel rooms has been set aside at the nearby DoubleTree Bethesda Hotel, $269/night.<br />
<br />
<br />
Doubletree Hotel Bethesda<br />
8120 Wisconsin Ave., Bethesda, MD<br />
(301) 652-2000<br />
<br />
Please make reservations before *September 7, 2011.* (extended from the original date of 2-Sep-2011).<br />
<br />
Points of interest for your ITK Travelers:<br />
- Guestrooms have Complimentary Wireless Internet<br />
- Location and Transportation to NIH<br />
4 Blocks or Just a 10 Minute Walk to Campus Visitors Entrance<br />
Hotel Provides an Hourly Complimentary Shuttle to Campus<br />
<br />
- Hotel has 4 Dining Options on Property<br />
The Cup- Starbucks Coffee, Pastries, and To- Go Sandwiches and Salads<br />
The OZ Restaurant- 3 Sophisticated Meals a Day: Full American Buffet Breakfast, Buffet and A La Carte Lunch Menu, Elegant yet Comforting Dinner Entrees and Ambiance<br />
The Bar- Beer on Tap, Mixed Drinks, 60 Wines by the Glass, and a Great Bar Menu, Perfect for the Gov. Per Diem Traveler<br />
Room Service- Full Menu Available 6:00am- 11:00pm Daily<br />
- Parking<br />
Valet Parking is $20 Overnight<br />
Public Parking Lot Behind Hotel is $0.75 per Hour<br />
- Other Complimentary Services<br />
24- Hour Gym<br />
24- Hour Free and Unlimited Business Center<br />
Wireless Internet in Lobby<br />
<br />
The hotel website is: <br />
<br />
http://www.doubletreebethesda.com<br />
<br />
<br />
* Additional details will be provided in the near future<br />
<br />
== Registration Information ==<br />
<br />
== Meeting Room ==<br />
<br />
The opening session of the 2011 Fall ITKv4 meeting will be held in the NLM Visitor's Center, 9 AM-Noon, Tuesday 27-September-2001.<br />
<br />
The remaining sessions will be held in the NLM Board Room. Networking/WiFi support will be available in the Board Room.<br />
<br />
== Meeting Agenda ==<br />
<br />
=== Must See Topics ===<br />
<br />
Carried-over from June, 2011 meeting<br />
<br />
* [[ITK_Release_4 | ITKv4 Status: Beta Release]]<br />
<br />
* Projects<br />
** [[ITK_Release_4/GPU_Acceleration]]<br />
** [[ITK_Release_4/Modularization]]<br />
** [[ITK_Release_4/SimpleITK]]<br />
** [[ITK_Release_4/Wrapping]]<br />
** [[ITK_Release_4/DICOM]]<br />
** [[ITK_Release_4/Enhancing_Image_Registration_Framework]]<br />
** [[ITK_Release_4/Migration_Plan]]<br />
** [[ITK_Release_4/Refactoring_Level_Set_Framework]]<br />
<br />
=== September 27th - A2D2 Summit ===<br />
<br />
* [[ITK_Release_4/The Team/A2D2 Development Team|A2D2 Development Team]]<br />
* [[ITK_Release_4/The Team/ITKv4 Development Team|ITKv4 Development Team]]<br />
<br />
* 8:30 am Welcome: Terry Yoo<br />
<br />
<br />
=== September 28th ===<br />
<br />
* 8:30 am Welcome, Questions, Concerns<br />
<br />
=== September 29th ===<br />
<br />
* 8:30 am Hackathon. Send ideas for projects to tyoo@mail.nlm.nih.gov<br />
<br />
Probable topics/projects: DICOM, Registration, GPU<br />
<br />
== Attendees ==<br />
<br />
Please add your name to the list below if you are planning to attend.<br />
<br />
=== Attendance Matrix ===<br />
<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Organization !! Project !! September 27 !! September 28 !! September 29<br />
|-<br />
| Luis Ibanez || Kitware || ITKv4 || X || X ||<br />
|-<br />
| Bill Hoffman || Kitware || ITKv4 || X || X || <br />
|-<br />
| Stephen Aylward || Kitware || ITKv4 || X || X ||<br />
|-<br />
| Matt McCormick || Kitware || ITKv4 || X || X ||<br />
|-<br />
| Xiaoxiao Liu || Kitware || ITKv4 || X || X ||<br />
|-<br />
| Andinet Enquobahrie || Kitware || ITKv4 || X || X ||<br />
|-<br />
| Amitha Perera || Kitware || A2D2-VideoExt || X || X ||<br />
|-<br />
| Alex Gouaillard || || ITKv4 || X || X ||<br />
|-<br />
|-<br />
| Raghu Machiraju || OSU || A2D2s || X || ||<br />
|-<br />
| Marc Niethammer || UNC || A2D2-Deconvolution || X || X ||<br />
|-<br />
| Cory Quammen || UNC || A2D2-Deconvolution || X || X ||<br />
|-<br />
| Hans Johnson || UIowa || ITKv4 || X || X || X <br />
|}</div>Hans-johnson@uiowa.eduhttps://public.kitware.com/Wiki/index.php?title=ITK/Fall_v4_2011_Meeting&diff=42759ITK/Fall v4 2011 Meeting2011-09-05T21:56:05Z<p>Hans-johnson@uiowa.edu: /* Attendance Matrix */</p>
<hr />
<div>ITKv4 Fall Meeting<br />
<br />
*'''Dates: September 27-28, 2011, Work day September 29, 2011'''<br />
** Start Time: 0800 (TBD), September 27<br />
** End Time: 1600 (TBD), September 28<br />
** Hackathon: 0800-1700 (TBD), September 29<br />
*'''City: Bethesda, MD'''<br />
*'''Location: NLM'''<br />
<br />
UPDATE: The hotel rooming block will be available until Wednesday, September 7, 2011.<br />
<br />
== Travel / Hotel Information ==<br />
<br />
NEW - The reservation deadline for the rooming block has been extended until September 7, 2011.<br />
<br />
The code for the block of rooms is '''"ITK"'''<br />
<br />
The Meeting will take place at the NLM in Bethesda, MD<br />
<br />
A block of hotel rooms has been set aside at the nearby DoubleTree Bethesda Hotel, $269/night.<br />
<br />
<br />
Doubletree Hotel Bethesda<br />
8120 Wisconsin Ave., Bethesda, MD<br />
(301) 652-2000<br />
<br />
Please make reservations before *September 7, 2011.* (extended from the original date of 2-Sep-2011).<br />
<br />
Points of interest for your ITK Travelers:<br />
- Guestrooms have Complimentary Wireless Internet<br />
- Location and Transportation to NIH<br />
4 Blocks or Just a 10 Minute Walk to Campus Visitors Entrance<br />
Hotel Provides an Hourly Complimentary Shuttle to Campus<br />
<br />
- Hotel has 4 Dining Options on Property<br />
The Cup- Starbucks Coffee, Pastries, and To- Go Sandwiches and Salads<br />
The OZ Restaurant- 3 Sophisticated Meals a Day: Full American Buffet Breakfast, Buffet and A La Carte Lunch Menu, Elegant yet Comforting Dinner Entrees and Ambiance<br />
The Bar- Beer on Tap, Mixed Drinks, 60 Wines by the Glass, and a Great Bar Menu, Perfect for the Gov. Per Diem Traveler<br />
Room Service- Full Menu Available 6:00am- 11:00pm Daily<br />
- Parking<br />
Valet Parking is $20 Overnight<br />
Public Parking Lot Behind Hotel is $0.75 per Hour<br />
- Other Complimentary Services<br />
24- Hour Gym<br />
24- Hour Free and Unlimited Business Center<br />
Wireless Internet in Lobby<br />
<br />
The hotel website is: <br />
<br />
http://www.doubletreebethesda.com<br />
<br />
<br />
* Additional details will be provided in the near future<br />
<br />
== Registration Information ==<br />
<br />
== Meeting Room ==<br />
<br />
The opening session of the 2011 Fall ITKv4 meeting will be held in the NLM Visitor's Center, 9 AM-Noon, Tuesday 27-September-2001.<br />
<br />
The remaining sessions will be held in the NLM Board Room. Networking/WiFi support will be available in the Board Room.<br />
<br />
== Meeting Agenda ==<br />
<br />
=== Must See Topics ===<br />
<br />
Carried-over from June, 2011 meeting<br />
<br />
* [[ITK_Release_4 | ITKv4 Status: Beta Release]]<br />
<br />
* Projects<br />
** [[ITK_Release_4/GPU_Acceleration]]<br />
** [[ITK_Release_4/Modularization]]<br />
** [[ITK_Release_4/SimpleITK]]<br />
** [[ITK_Release_4/Wrapping]]<br />
** [[ITK_Release_4/DICOM]]<br />
** [[ITK_Release_4/Enhancing_Image_Registration_Framework]]<br />
** [[ITK_Release_4/Migration_Plan]]<br />
** [[ITK_Release_4/Refactoring_Level_Set_Framework]]<br />
<br />
=== September 27th - A2D2 Summit ===<br />
<br />
* [[ITK_Release_4/The Team/A2D2 Development Team|A2D2 Development Team]]<br />
* [[ITK_Release_4/The Team/ITKv4 Development Team|ITKv4 Development Team]]<br />
<br />
* 8:30 am Welcome: Terry Yoo<br />
<br />
<br />
=== September 28th ===<br />
<br />
* 8:30 am Welcome, Questions, Concerns<br />
<br />
=== September 29th ===<br />
<br />
* 8:30 am Hackathon. Send ideas for projects to tyoo@mail.nlm.nih.gov<br />
<br />
Probable topics/projects: DICOM, Registration, GPU<br />
<br />
== Attendees ==<br />
<br />
Please add your name to the list below if you are planning to attend.<br />
<br />
=== Attendance Matrix ===<br />
<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name !! Organization !! Project !! September 27 !! September 28 !! September 29<br />
|-<br />
| Luis Ibanez || Kitware || ITKv4 || X || X ||<br />
|-<br />
| Bill Hoffman || Kitware || ITKv4 || X || X || <br />
|-<br />
| Stephen Aylward || Kitware || ITKv4 || X || X ||<br />
|-<br />
| Matt McCormick || Kitware || ITKv4 || X || X ||<br />
|-<br />
| Xiaoxiao Liu || Kitware || ITKv4 || X || X ||<br />
|-<br />
| Andinet Enquobahrie || Kitware || ITKv4 || X || X ||<br />
|-<br />
| Amitha Perera || Kitware || A2D2-VideoExt || X || X ||<br />
|-<br />
| Alex Gouaillard || || ITKv4 || X || X ||<br />
|-<br />
|-<br />
| Raghu Machiraju || OSU || A2D2s || X || ||<br />
|-<br />
| Marc Niethammer || UNC || A2D2-Deconvolution || X || X ||<br />
|-<br />
| Cory Quammen || UNC || A2D2-Deconvolution || X || X ||<br />
|-<br />
| Hans Johnson || UIowa || ITKv4 || X || X || X ||<br />
|}</div>Hans-johnson@uiowa.eduhttps://public.kitware.com/Wiki/index.php?title=ITK/Fall_v4_2010_Meeting&diff=33986ITK/Fall v4 2010 Meeting2010-11-08T23:25:36Z<p>Hans-johnson@uiowa.edu: /* Unallocated Topics */</p>
<hr />
<div>The ITKv4 Fall meeting is set. <br />
<br />
*'''Dates: November 8-10, 2010''' <br />
*'''City: Iowa City, IA'''<br />
*'''Location: Hotel Vetro'''<br />
<br />
We will meet all day on Monday November 8 and Tuesday November 9. A half day finishing around 1pm is scheduled for Wednesday November 10. <br />
<br />
<br />
== Travel Information ==<br />
The closest airport to Iowa City is the '''Cedar Rapids / Eastern Iowa Airport (CID)'''<br />
which is about 20 minutes from the hotel. <br />
<br />
===Airport Shuttle Services===<br />
The easiest way to get from the airport to<br />
Iowa City is via one of the shuttle services: <br />
* [http://www.crshuttle.com/ Airport Shuttle Service] (Phone: 1-800-725-8460)<br />
* [http://www.limosbyexpress.com/ Airport Express] (Phone: 319-626-5466)<br />
Both are the same price and easiest to book before travel. The cost is roughly $60 round trip.<br />
<br />
===Rental Cars===<br />
Rental cars are also available from the Airport. The following companies have desks at the airport<br />
* Avis<br />
** [http://www.avis.com/ Website] <br />
** Toll-Free Phone : 1-800-331-1212<br />
** Local Phone : (319) 366-6418<br />
* Hertz<br />
** [http://www.hertz.com/ Website] <br />
**Toll-Free Phone : 1-800-654-3131<br />
**Local Phone : (319) 365-9184<br />
* National and Alamo<br />
** [http://www.nationalcar.com/ Website]<br />
**Toll-Free Phone : 1-888-826-6890<br />
**Local Phone : (319) 363-0249<br />
*Enterprise<br />
**[http://www.enterprise.com/car_rental/home.do Website]<br />
**Local Phone : (319) 366-5522<br />
<br />
<br />
If you have any questions regarding travel, feel free to contact Joe Ekdahl either via e-mail(joe-ekdahl@uiowa.edu) or phone (319-384-3026).<br />
<br />
== Hotel Information ==<br />
We reserved a block of hotel rooms at Hotel Vetro at a rate of $139. The group code to get this rate is '''ITK-V4'''. These rooms will be held at this rate until October 22.<br />
* '''[http://www.hotelvetro.com/ Hotel Vetro]'''<br />
**Phone: 800-592-0355<br />
**Address: 201 South Linn Street, Iowa City, Iowa 52240<br />
<br />
<br />
Other hotels that are close to the conference site, University of Iowa, and downtown include:<br />
*'''[http://www.Sheraton.com/IowaCity Sheraton hotel]'''<br />
**Phone: 319-337-4058<br />
**Address: 210 South Dubuque St, Iowa City, IA 52240<br />
*'''[http://imu.uiowa.edu/iowahouse/ Iowa House Hotel]'''<br />
**Phone: 319-335-3513<br />
**Address: 125 North Madison St, Iowa City, IA 52242<br />
<br />
== Registration Information ==<br />
[https://www.continuetolearn.uiowa.edu/UIConferences/ Registration is now open for the ITKv4 Fall Meeting.] <br />
# Goto the '''ITK-v4 Fall Design Meeting''' <br />
# Select the '''Register Now''' link<br />
# Select the '''Create an Account'''<br />
This will take you through the registration process. There will be $125 fee for registration. We are also planning on a dinner Monday dinner that is optional and will be $10.<br />
<br />
== Meeting Room ==<br />
We will be meeting in the '''Plaza 1''' room.<br />
<br />
== Meeting Agenda ==<br />
<br />
<br />
<span style="color:#FF0000"> '''THE AGENDA HAS BEEN MODIFIED'''</span><br />
<br />
=== Essential Topics ===<br />
<br />
* '''Modularization''' (Bill Hoffman)<br />
** Testing strategy<br />
* '''Simple ITK''' (Dan Blezek, Bill Hoffman)<br />
** Its Wrapping (Alex Gouaillard, Gaetan Lehmann)<br />
* '''DICOM''' (Dan Blezek, Mathieu Malaterre)<br />
* '''GPU Acceleration''' (Won Ki)<br />
** Pipeline Refactoring (Jim Miller)<br />
<br />
===Monday November 8===<br />
<br />
==== Morning ====<br />
* 8:00am - 8:30am '''Breakfast'''<br />
* 8:30am - 9:00am '''Welcome''' (Terry Yoo)<br />
* 9:00am - 9:30am '''Status of the Toolkit''' (Hans Johnson, ISC President)<br />
* 9:30am - 10:00am '''Integration Plan - Software Process''' (Luis Ibanez, Bill Hoffman, Marcus Hanwell)<br />
** Coordinating Topic Branches<br />
** Coordinating Code Reviews<br />
* 10:00am - 10:30am '''Break'''<br />
* 10:30am - 12:00pm '''Modularization''' (Bill Hoffman)<br />
** Prototype (Bill Hoffman)<br />
** Dependencies (Bill Hoffman)<br />
** Suggested Partition (Xiaoxiao Liu, Luis Ibanez)<br />
** Documentation of independent modules (Luis Ibanez)<br />
<br />
==== Afternoon ====<br />
<br />
* 1:00pm - 3:00pm '''Simple ITK''' (Dan Blezek, Bill Hoffman) ([[Media:SimpleITK_Status-2010-11-10.pdf|Slides]])<br />
** Review Survey (Jesus Caban - [[Media:simpleITK-R2.pdf|Slides]], Gabe Hart - [[Media:SimpleITKSurveyReport.pdf|Slides]])<br />
** Design Discussion (Dan Blezek, Bill Hoffman)<br />
** Its Wrapping (Alex Gouaillard, Bill Hoffman)<br />
* 3:00pm - 3:30pm '''Break'''<br />
* 3:30pm - 5:30pm '''GPU Acceleration''' (Won-Ki)<br />
** Design Plan<br />
** Pipeline Refactoring (Jim Miller)<br />
*** How other classes need to be modified<br />
<br />
==== Dinner ====<br />
<br />
* 6:30pm - 1206 Plaza Towers<br />
<br />
===Tuesday November 9===<br />
<br />
==== Morning ====<br />
<br />
* 8:00am - 8:30am '''Breakfast'''<br />
* 8:30am - 9:30am '''Integer Types - 64 bit Windows''' (Luis, Hans)<br />
** Integer types<br />
** stdint.h, c99 lib<br />
** size_t<br />
* 9:30am - 10:30am '''DICOM''' (Dan Blezek, Mathieu Malaterre) ([[Media:DICOMStatusITKv4.pdf|Slides]])<br />
* 10:30am - 11:00am '''Break'''<br />
* 11:00am - 12:00am '''Spatial Objects''' (Sean Megason, Arnaud Gelas, Luis Ibanez)<br />
<br />
==== Afternoon ====<br />
<br />
* 12:00pm-1:00pm '''Lunch'''<br />
<br />
* 1:00pm - 1:45pm '''Filters Refactoring''' (Brad Lowekamp)<br />
* 1:45pm - 2:30pm '''Registration Framework Refactoring''' (Brian Avants)<br />
* 2:30pm - 3:15pm '''Level Sets Framework Refactoring''' (Arnaud Gelas)<br />
<br />
* 3:15pm - 3:45pm '''Break'''<br />
<br />
* 3:45pm - 4:30pm '''FEM Refactoring''' (Vince Magnotta) ([[Media:ITK-FEM-Update-2010-November.ppt|Slides]])<br />
* 4:30pm - 5:15pm '''Video / Time series support''' (Patrick Reynolds, Patrick Cheng)<br />
<br />
===Wednesday November 10===<br />
<br />
==== Morning ====<br />
<br />
* 8:00am - 8:30am '''Breakfast'''<br />
* 8:30am - 10:30 '''Git/Gerrit Workshop''' (Marcus Hanwell)<br />
** Hands-on practical exercises on Git/Gerrit<br />
** Discussion about software process and improvements<br />
* 10:30am - 11:00am '''Break'''<br />
* 11:00am - 11:30am '''Migration Guide''' (Gabe Hart, Hans Johnson)<br />
** Online System<br />
** Workflow ([[Media:MigrationGuideFull.pdf|Slides]])<br />
*** User Driven Perspective<br />
*** Developer Workflow<br />
*** Automation<br />
* 11:30am - 12:00pm '''Testing Framework''' CDash@Home (Zach Mullen)<br />
** '''Testing Data''' (Git / MIDAS) (Zach Mullen,Patrick Reynolds)<br />
<br />
* 12-1pm '''Lunch'''<br />
<br />
==== Afternoon ====<br />
<br />
* 1:00pm - 1:30pm '''Doxygen''' crowdsourcing fixes (Luis Ibanez, Arnaud Gelas)<br />
* 1:30pm - 2:00pm '''Software Guide Update''' (Luis Ibanez)<br />
** New generation of Examples<br />
** Use the Wiki like VTK ?<br />
* 2pm Adjurn<br />
<br />
==== Unallocated Topics ====<br />
** Partition & assignment of tasks to groups proportional to funding.<br />
* 10:00am - 10:30am Coding Style (KWStyle/Gerrit) (Brad Lowekamp, Hans Johnson)</div>Hans-johnson@uiowa.eduhttps://public.kitware.com/Wiki/index.php?title=ITK/Fall_v4_2010_Meeting&diff=33985ITK/Fall v4 2010 Meeting2010-11-08T23:25:16Z<p>Hans-johnson@uiowa.edu: /* Morning */</p>
<hr />
<div>The ITKv4 Fall meeting is set. <br />
<br />
*'''Dates: November 8-10, 2010''' <br />
*'''City: Iowa City, IA'''<br />
*'''Location: Hotel Vetro'''<br />
<br />
We will meet all day on Monday November 8 and Tuesday November 9. A half day finishing around 1pm is scheduled for Wednesday November 10. <br />
<br />
<br />
== Travel Information ==<br />
The closest airport to Iowa City is the '''Cedar Rapids / Eastern Iowa Airport (CID)'''<br />
which is about 20 minutes from the hotel. <br />
<br />
===Airport Shuttle Services===<br />
The easiest way to get from the airport to<br />
Iowa City is via one of the shuttle services: <br />
* [http://www.crshuttle.com/ Airport Shuttle Service] (Phone: 1-800-725-8460)<br />
* [http://www.limosbyexpress.com/ Airport Express] (Phone: 319-626-5466)<br />
Both are the same price and easiest to book before travel. The cost is roughly $60 round trip.<br />
<br />
===Rental Cars===<br />
Rental cars are also available from the Airport. The following companies have desks at the airport<br />
* Avis<br />
** [http://www.avis.com/ Website] <br />
** Toll-Free Phone : 1-800-331-1212<br />
** Local Phone : (319) 366-6418<br />
* Hertz<br />
** [http://www.hertz.com/ Website] <br />
**Toll-Free Phone : 1-800-654-3131<br />
**Local Phone : (319) 365-9184<br />
* National and Alamo<br />
** [http://www.nationalcar.com/ Website]<br />
**Toll-Free Phone : 1-888-826-6890<br />
**Local Phone : (319) 363-0249<br />
*Enterprise<br />
**[http://www.enterprise.com/car_rental/home.do Website]<br />
**Local Phone : (319) 366-5522<br />
<br />
<br />
If you have any questions regarding travel, feel free to contact Joe Ekdahl either via e-mail(joe-ekdahl@uiowa.edu) or phone (319-384-3026).<br />
<br />
== Hotel Information ==<br />
We reserved a block of hotel rooms at Hotel Vetro at a rate of $139. The group code to get this rate is '''ITK-V4'''. These rooms will be held at this rate until October 22.<br />
* '''[http://www.hotelvetro.com/ Hotel Vetro]'''<br />
**Phone: 800-592-0355<br />
**Address: 201 South Linn Street, Iowa City, Iowa 52240<br />
<br />
<br />
Other hotels that are close to the conference site, University of Iowa, and downtown include:<br />
*'''[http://www.Sheraton.com/IowaCity Sheraton hotel]'''<br />
**Phone: 319-337-4058<br />
**Address: 210 South Dubuque St, Iowa City, IA 52240<br />
*'''[http://imu.uiowa.edu/iowahouse/ Iowa House Hotel]'''<br />
**Phone: 319-335-3513<br />
**Address: 125 North Madison St, Iowa City, IA 52242<br />
<br />
== Registration Information ==<br />
[https://www.continuetolearn.uiowa.edu/UIConferences/ Registration is now open for the ITKv4 Fall Meeting.] <br />
# Goto the '''ITK-v4 Fall Design Meeting''' <br />
# Select the '''Register Now''' link<br />
# Select the '''Create an Account'''<br />
This will take you through the registration process. There will be $125 fee for registration. We are also planning on a dinner Monday dinner that is optional and will be $10.<br />
<br />
== Meeting Room ==<br />
We will be meeting in the '''Plaza 1''' room.<br />
<br />
== Meeting Agenda ==<br />
<br />
<br />
<span style="color:#FF0000"> '''THE AGENDA HAS BEEN MODIFIED'''</span><br />
<br />
=== Essential Topics ===<br />
<br />
* '''Modularization''' (Bill Hoffman)<br />
** Testing strategy<br />
* '''Simple ITK''' (Dan Blezek, Bill Hoffman)<br />
** Its Wrapping (Alex Gouaillard, Gaetan Lehmann)<br />
* '''DICOM''' (Dan Blezek, Mathieu Malaterre)<br />
* '''GPU Acceleration''' (Won Ki)<br />
** Pipeline Refactoring (Jim Miller)<br />
<br />
===Monday November 8===<br />
<br />
==== Morning ====<br />
* 8:00am - 8:30am '''Breakfast'''<br />
* 8:30am - 9:00am '''Welcome''' (Terry Yoo)<br />
* 9:00am - 9:30am '''Status of the Toolkit''' (Hans Johnson, ISC President)<br />
* 9:30am - 10:00am '''Integration Plan - Software Process''' (Luis Ibanez, Bill Hoffman, Marcus Hanwell)<br />
** Coordinating Topic Branches<br />
** Coordinating Code Reviews<br />
* 10:00am - 10:30am '''Break'''<br />
* 10:30am - 12:00pm '''Modularization''' (Bill Hoffman)<br />
** Prototype (Bill Hoffman)<br />
** Dependencies (Bill Hoffman)<br />
** Suggested Partition (Xiaoxiao Liu, Luis Ibanez)<br />
** Documentation of independent modules (Luis Ibanez)<br />
<br />
==== Afternoon ====<br />
<br />
* 1:00pm - 3:00pm '''Simple ITK''' (Dan Blezek, Bill Hoffman) ([[Media:SimpleITK_Status-2010-11-10.pdf|Slides]])<br />
** Review Survey (Jesus Caban - [[Media:simpleITK-R2.pdf|Slides]], Gabe Hart - [[Media:SimpleITKSurveyReport.pdf|Slides]])<br />
** Design Discussion (Dan Blezek, Bill Hoffman)<br />
** Its Wrapping (Alex Gouaillard, Bill Hoffman)<br />
* 3:00pm - 3:30pm '''Break'''<br />
* 3:30pm - 5:30pm '''GPU Acceleration''' (Won-Ki)<br />
** Design Plan<br />
** Pipeline Refactoring (Jim Miller)<br />
*** How other classes need to be modified<br />
<br />
==== Dinner ====<br />
<br />
* 6:30pm - 1206 Plaza Towers<br />
<br />
===Tuesday November 9===<br />
<br />
==== Morning ====<br />
<br />
* 8:00am - 8:30am '''Breakfast'''<br />
* 8:30am - 9:30am '''Integer Types - 64 bit Windows''' (Luis, Hans)<br />
** Integer types<br />
** stdint.h, c99 lib<br />
** size_t<br />
* 9:30am - 10:30am '''DICOM''' (Dan Blezek, Mathieu Malaterre) ([[Media:DICOMStatusITKv4.pdf|Slides]])<br />
* 10:30am - 11:00am '''Break'''<br />
* 11:00am - 12:00am '''Spatial Objects''' (Sean Megason, Arnaud Gelas, Luis Ibanez)<br />
<br />
==== Afternoon ====<br />
<br />
* 12:00pm-1:00pm '''Lunch'''<br />
<br />
* 1:00pm - 1:45pm '''Filters Refactoring''' (Brad Lowekamp)<br />
* 1:45pm - 2:30pm '''Registration Framework Refactoring''' (Brian Avants)<br />
* 2:30pm - 3:15pm '''Level Sets Framework Refactoring''' (Arnaud Gelas)<br />
<br />
* 3:15pm - 3:45pm '''Break'''<br />
<br />
* 3:45pm - 4:30pm '''FEM Refactoring''' (Vince Magnotta) ([[Media:ITK-FEM-Update-2010-November.ppt|Slides]])<br />
* 4:30pm - 5:15pm '''Video / Time series support''' (Patrick Reynolds, Patrick Cheng)<br />
<br />
===Wednesday November 10===<br />
<br />
==== Morning ====<br />
<br />
* 8:00am - 8:30am '''Breakfast'''<br />
* 8:30am - 10:30 '''Git/Gerrit Workshop''' (Marcus Hanwell)<br />
** Hands-on practical exercises on Git/Gerrit<br />
** Discussion about software process and improvements<br />
* 10:30am - 11:00am '''Break'''<br />
* 11:00am - 11:30am '''Migration Guide''' (Gabe Hart, Hans Johnson)<br />
** Online System<br />
** Workflow ([[Media:MigrationGuideFull.pdf|Slides]])<br />
*** User Driven Perspective<br />
*** Developer Workflow<br />
*** Automation<br />
* 11:30am - 12:00pm '''Testing Framework''' CDash@Home (Zach Mullen)<br />
** '''Testing Data''' (Git / MIDAS) (Zach Mullen,Patrick Reynolds)<br />
<br />
* 12-1pm '''Lunch'''<br />
<br />
==== Afternoon ====<br />
<br />
* 1:00pm - 1:30pm '''Doxygen''' crowdsourcing fixes (Luis Ibanez, Arnaud Gelas)<br />
* 1:30pm - 2:00pm '''Software Guide Update''' (Luis Ibanez)<br />
** New generation of Examples<br />
** Use the Wiki like VTK ?<br />
* 2pm Adjurn<br />
<br />
==== Unallocated Topics ====<br />
<br />
* 10:00am - 10:30am Coding Style (KWStyle/Gerrit) (Brad Lowekamp, Hans Johnson)</div>Hans-johnson@uiowa.eduhttps://public.kitware.com/Wiki/index.php?title=ITK/Fall_v4_2010_Meeting&diff=33984ITK/Fall v4 2010 Meeting2010-11-08T23:23:38Z<p>Hans-johnson@uiowa.edu: /* Unallocated Topics */</p>
<hr />
<div>The ITKv4 Fall meeting is set. <br />
<br />
*'''Dates: November 8-10, 2010''' <br />
*'''City: Iowa City, IA'''<br />
*'''Location: Hotel Vetro'''<br />
<br />
We will meet all day on Monday November 8 and Tuesday November 9. A half day finishing around 1pm is scheduled for Wednesday November 10. <br />
<br />
<br />
== Travel Information ==<br />
The closest airport to Iowa City is the '''Cedar Rapids / Eastern Iowa Airport (CID)'''<br />
which is about 20 minutes from the hotel. <br />
<br />
===Airport Shuttle Services===<br />
The easiest way to get from the airport to<br />
Iowa City is via one of the shuttle services: <br />
* [http://www.crshuttle.com/ Airport Shuttle Service] (Phone: 1-800-725-8460)<br />
* [http://www.limosbyexpress.com/ Airport Express] (Phone: 319-626-5466)<br />
Both are the same price and easiest to book before travel. The cost is roughly $60 round trip.<br />
<br />
===Rental Cars===<br />
Rental cars are also available from the Airport. The following companies have desks at the airport<br />
* Avis<br />
** [http://www.avis.com/ Website] <br />
** Toll-Free Phone : 1-800-331-1212<br />
** Local Phone : (319) 366-6418<br />
* Hertz<br />
** [http://www.hertz.com/ Website] <br />
**Toll-Free Phone : 1-800-654-3131<br />
**Local Phone : (319) 365-9184<br />
* National and Alamo<br />
** [http://www.nationalcar.com/ Website]<br />
**Toll-Free Phone : 1-888-826-6890<br />
**Local Phone : (319) 363-0249<br />
*Enterprise<br />
**[http://www.enterprise.com/car_rental/home.do Website]<br />
**Local Phone : (319) 366-5522<br />
<br />
<br />
If you have any questions regarding travel, feel free to contact Joe Ekdahl either via e-mail(joe-ekdahl@uiowa.edu) or phone (319-384-3026).<br />
<br />
== Hotel Information ==<br />
We reserved a block of hotel rooms at Hotel Vetro at a rate of $139. The group code to get this rate is '''ITK-V4'''. These rooms will be held at this rate until October 22.<br />
* '''[http://www.hotelvetro.com/ Hotel Vetro]'''<br />
**Phone: 800-592-0355<br />
**Address: 201 South Linn Street, Iowa City, Iowa 52240<br />
<br />
<br />
Other hotels that are close to the conference site, University of Iowa, and downtown include:<br />
*'''[http://www.Sheraton.com/IowaCity Sheraton hotel]'''<br />
**Phone: 319-337-4058<br />
**Address: 210 South Dubuque St, Iowa City, IA 52240<br />
*'''[http://imu.uiowa.edu/iowahouse/ Iowa House Hotel]'''<br />
**Phone: 319-335-3513<br />
**Address: 125 North Madison St, Iowa City, IA 52242<br />
<br />
== Registration Information ==<br />
[https://www.continuetolearn.uiowa.edu/UIConferences/ Registration is now open for the ITKv4 Fall Meeting.] <br />
# Goto the '''ITK-v4 Fall Design Meeting''' <br />
# Select the '''Register Now''' link<br />
# Select the '''Create an Account'''<br />
This will take you through the registration process. There will be $125 fee for registration. We are also planning on a dinner Monday dinner that is optional and will be $10.<br />
<br />
== Meeting Room ==<br />
We will be meeting in the '''Plaza 1''' room.<br />
<br />
== Meeting Agenda ==<br />
<br />
<br />
<span style="color:#FF0000"> '''THE AGENDA HAS BEEN MODIFIED'''</span><br />
<br />
=== Essential Topics ===<br />
<br />
* '''Modularization''' (Bill Hoffman)<br />
** Testing strategy<br />
* '''Simple ITK''' (Dan Blezek, Bill Hoffman)<br />
** Its Wrapping (Alex Gouaillard, Gaetan Lehmann)<br />
* '''DICOM''' (Dan Blezek, Mathieu Malaterre)<br />
* '''GPU Acceleration''' (Won Ki)<br />
** Pipeline Refactoring (Jim Miller)<br />
<br />
===Monday November 8===<br />
<br />
==== Morning ====<br />
* 8:00am - 8:30am '''Breakfast'''<br />
* 8:30am - 9:00am '''Welcome''' (Terry Yoo)<br />
* 9:00am - 9:30am '''Status of the Toolkit''' (Hans Johnson, ISC President)<br />
* 9:30am - 10:00am '''Integration Plan - Software Process''' (Luis Ibanez, Bill Hoffman, Marcus Hanwell)<br />
** Coordinating Topic Branches<br />
** Coordinating Code Reviews<br />
* 10:00am - 10:30am '''Break'''<br />
* 10:30am - 12:00pm '''Modularization''' (Bill Hoffman)<br />
** Prototype (Bill Hoffman)<br />
** Dependencies (Bill Hoffman)<br />
** Suggested Partition (Xiaoxiao Liu, Luis Ibanez)<br />
** Documentation of independent modules (Luis Ibanez)<br />
<br />
==== Afternoon ====<br />
<br />
* 1:00pm - 3:00pm '''Simple ITK''' (Dan Blezek, Bill Hoffman) ([[Media:SimpleITK_Status-2010-11-10.pdf|Slides]])<br />
** Review Survey (Jesus Caban - [[Media:simpleITK-R2.pdf|Slides]], Gabe Hart - [[Media:SimpleITKSurveyReport.pdf|Slides]])<br />
** Design Discussion (Dan Blezek, Bill Hoffman)<br />
** Its Wrapping (Alex Gouaillard, Bill Hoffman)<br />
* 3:00pm - 3:30pm '''Break'''<br />
* 3:30pm - 5:30pm '''GPU Acceleration''' (Won-Ki)<br />
** Design Plan<br />
** Pipeline Refactoring (Jim Miller)<br />
*** How other classes need to be modified<br />
<br />
==== Dinner ====<br />
<br />
* 6:30pm - 1206 Plaza Towers<br />
<br />
===Tuesday November 9===<br />
<br />
==== Morning ====<br />
<br />
* 8:00am - 8:30am '''Breakfast'''<br />
* 8:30am - 9:30am '''Wrapping''' (Gaetan Lehmann, Alex Gouaillard)<br />
* 9:30am - 10:30am '''DICOM''' (Dan Blezek, Mathieu Malaterre) ([[Media:DICOMStatusITKv4.pdf|Slides]])<br />
* 10:30am - 11:00am '''Break'''<br />
* 11:00am - 12:00am '''Spatial Objects''' (Sean Megason, Arnaud Gelas, Luis Ibanez)<br />
<br />
==== Afternoon ====<br />
<br />
* 12:00pm-1:00pm '''Lunch'''<br />
<br />
* 1:00pm - 1:45pm '''Filters Refactoring''' (Brad Lowekamp)<br />
* 1:45pm - 2:30pm '''Registration Framework Refactoring''' (Brian Avants)<br />
* 2:30pm - 3:15pm '''Level Sets Framework Refactoring''' (Arnaud Gelas)<br />
<br />
* 3:15pm - 3:45pm '''Break'''<br />
<br />
* 3:45pm - 4:30pm '''FEM Refactoring''' (Vince Magnotta) ([[Media:ITK-FEM-Update-2010-November.ppt|Slides]])<br />
* 4:30pm - 5:15pm '''Video / Time series support''' (Patrick Reynolds, Patrick Cheng)<br />
<br />
===Wednesday November 10===<br />
<br />
==== Morning ====<br />
<br />
* 8:00am - 8:30am '''Breakfast'''<br />
* 8:30am - 10:30 '''Git/Gerrit Workshop''' (Marcus Hanwell)<br />
** Hands-on practical exercises on Git/Gerrit<br />
** Discussion about software process and improvements<br />
* 10:30am - 11:00am '''Break'''<br />
* 11:00am - 11:30am '''Migration Guide''' (Gabe Hart, Hans Johnson)<br />
** Online System<br />
** Workflow ([[Media:MigrationGuideFull.pdf|Slides]])<br />
*** User Driven Perspective<br />
*** Developer Workflow<br />
*** Automation<br />
* 11:30am - 12:00pm '''Testing Framework''' CDash@Home (Zach Mullen)<br />
** '''Testing Data''' (Git / MIDAS) (Zach Mullen,Patrick Reynolds)<br />
<br />
* 12-1pm '''Lunch'''<br />
<br />
==== Afternoon ====<br />
<br />
* 1:00pm - 1:30pm '''Doxygen''' crowdsourcing fixes (Luis Ibanez, Arnaud Gelas)<br />
* 1:30pm - 2:00pm '''Software Guide Update''' (Luis Ibanez)<br />
** New generation of Examples<br />
** Use the Wiki like VTK ?<br />
* 2pm Adjurn<br />
<br />
==== Unallocated Topics ====<br />
<br />
* 10:00am - 10:30am Coding Style (KWStyle/Gerrit) (Brad Lowekamp, Hans Johnson)</div>Hans-johnson@uiowa.eduhttps://public.kitware.com/Wiki/index.php?title=ITK/Gerrit/Primer&diff=31561ITK/Gerrit/Primer2010-10-08T13:02:52Z<p>Hans-johnson@uiowa.edu: /* Making Changes in Uploaded Patches */</p>
<hr />
<div>This primer is to aid the ITK developer community in using Gerrit. Some of the idiosyncrasies of Gerrit take a little work to understand and appreciate, especially if one is new to using the [http://git-scm.com/ git] distributed revision control system.<br />
<br />
==Gerrit basics==<br />
Gerrit is designed to take a single change with a change log and make it publicly available for comments and revisions. Once the change has been sufficiently reviewed and approved, it will be pushed into the official ITK repository. Gerrit addresses the problem of many changes scattered about many git repositories by bringing them into a central place and allowing commenting and changes to become transparent to the rest of the community.<br />
<br />
===Creating a Gerrit account===<br />
In order to register you need to [http://openid.net/get-an-openid/ get an OpenID]. Be aware that a [http://www.gmail.com GMail] account automatically gives you an OpenID.<br />
<br />
To register with Gerrit, first have your OpenID ready. Then visit http://review.source.kitware.com/. Click the "Register" link in the upper left. If you have a Google or Yahoo account, click on the "Register with a Google account". This will create your account. Otherwise, enter the URL of an OpenID provider.<br />
<br />
===Terminology===<br />
<br />
* '''commit''' To git, a [http://book.git-scm.com/1_the_git_object_model.html commit is a group of changes to a repository]. git uses a unique hash algorithm to identify a change (SHA1).<br />
* '''Change-ID''' Gerrit uses an [http://review.source.kitware.com/Documentation/user-changeid.html internal tracking Id to properly refer to a change]. Change-Ids let Gerrit link it's changes to a commit in the git repository.<br />
* '''Change number''' The Gerrit change number is a small number used to identify the commit when pushing to Gerrit.<br />
* '''repo''' An abbreviated form of git repository. May refer to a local repository or a remote repository.<br />
<br />
===Prerequisites===<br />
This primer requires a very basic understanding of git. The reader should begin by understanding:<br />
<br />
# [http://book.git-scm.com/3_normal_workflow.html Normal git workflow]<br />
# [http://book.git-scm.com/3_basic_branching_and_merging.html Basic branching]<br />
<br />
git should be properly setup on your system, and you should identify yourself by name and email:<br />
<br />
<pre><br />
git config --global user.name "Your name goes here"<br />
git config --global user.email "myemailaddress@nowhere.com"<br />
</pre><br />
<br />
This will help us track you down when things break.<br />
<br />
If you are frequently contributing to ITK through Gerrit, please set this configuration:<br />
<br />
<pre><br />
git config hooks.GerritId true<br />
</pre><br />
<br />
This setting can be done once globally ('''--global''' flag), or on a repo by repo case (the default). This setting automatically adds the Change-Id to any commits which greatly simplifies submission of subsequent revisions or commits.<br />
<br />
==git / Gerrit workflow==<br />
For the sake of this primer, we'll be making a series of small documentation changes to ITK code. The basic workflow from the developer's standpoint is:<br />
<br />
* Clone the ITK official repository<br />
* Create a topic branch<br />
* Edit, commit, edit, commit, ad infinitum<br />
* Compress your branch into a single commit<br />
* Push your changes into Gerrit<br />
* Review<br />
* Stage changes into the ITK official repository<br />
* Pull new changes from ITK repository<br />
<br />
These steps will be detailed in the next sections.<br />
<br />
==== Clone the ITK official repository ====<br />
The instructions for cloning the official repository are [[ITK/Git|here]]. For the minimalist:<br />
<br />
git clone git://itk.org/ITK.git<br />
cd ITK<br />
<br />
==== Create a topic branch ====<br />
git works well to create "micro-branches". Frequently, branches are considered poor practice in centralized revision control systems such as CVS and Subversion. However, in git branches are typically very easy to work with and manipulate. They are required for working with Gerrit, so get used to them.<br />
<br />
We'll call our branch GerritPrimer. The branch may be created it two steps:<br />
<br />
git branch GerritPrimer # Create a new branch from our existing revision<br />
git checkout GerritPrimer # Switch our working directory into the GerritPrimer branch<br />
<br />
or you can do this all at once:<br />
<br />
git checkout -b GerritPrimer # Create GerritPrimer and switch the working directory into that revision<br />
<br />
When we are finished, our revision history looks like this:<br />
<br />
[[File:GerritPrimerBranch.png]]<br />
<br />
Notice that GerritPrimer, master, origin/HEAD and origin/master branches all point to the same commit. You can think of branches is movable labels that point to a particular commit in the revision history. As we add code and commit our changes, we'll see GerritPrimer move.<br />
<br />
==== Edit, test, commit, edit, test, commit, ad infinitum ====<br />
Next, we'll edit some files and commit the changes. In this primer, we'll make 3 changes.<br />
<br />
Edit ITK/Code/BasicFilters/itkRecursiveGaussianImageFilter.h<br />
add " * \see DiscreteGaussianImageFilter" on line 54<br />
<br />
Run the tests:<br />
<br />
ctest<br />
<br />
When all passes, we ask git to show us what's happening with our modifications:<br />
<br />
<pre><br />
revelation:ITK(GerritPrimer) blezek$ git status<br />
# On branch GerritPrimer<br />
# Changed but not updated:<br />
# (use "git add <file>..." to update what will be committed)<br />
# (use "git checkout -- <file>..." to discard changes in working directory)<br />
#<br />
# modified: Code/BasicFilters/itkRecursiveGaussianImageFilter.h<br />
#<br />
no changes added to commit (use "git add" and/or "git commit -a")<br />
</pre><br />
<br />
git has the concept of an index, or an area where changes are stored before they are committed. In the listing above, git knows that Code/BasicFilters/itkRecursiveGaussianImageFilter.h is changed, but it has not yet staged that change into the index. To tell git that we want to add this change into the next commit, and make the commit we can do this in two steps:<br />
<br />
git add Code/BasicFilters/itkRecursiveGaussianImageFilter.h # Add the modified code into the index<br />
git commit # commit all modifications<br />
<br />
or in one step:<br />
<br />
git commit -a # Auto-add all modified files into the index, then commit all modifications<br />
<br />
After two more commits, our repository looks like this:<br />
<br />
[[File:GerritPrimerCommits.png]]<br />
<br />
From where we made the branch (master, origin/HEAD, origin/master), we have three commits. Notice that the GerritPrimer tag has moved along with our commits.<br />
<br />
==== Compress your branch into a single commit ====<br />
Gerrit expects only a single commit. If we were to push our branch to Gerrit, it would show up as 3 independent commits for commenting / approvals. Sometimes this is exactly what we want. We would like others to review our changes in three steps. At other times, we want a series of "micro-commits" to be combined into one larger body. ''Please take some time to consider how many commits you would like in Gerrit!'' We need to collapse our three commits into a single commit. This is easily accomplished using the [http://gitready.com/intermediate/2009/01/31/intro-to-rebase.html git rebase command]. What we are going to ask git to do is create one commit from the three that we currently have. The command is:<br />
<br />
git rebase -i HEAD~3<br />
<br />
The -i flag instructs rebase to do this interactively, and "HEAD~3" tells git to collapse the last three commits. We can also use:<br />
<br />
git rebase -i master<br />
<br />
because right now, master and HEAD~3 point to the same commit. We can also use the SHA1 of that particular commit.<br />
<br />
When we run the command we get this:<br />
<br />
<pre><br />
pick 1e01adb Added documentation.<br />
pick b465a05 Documentation changes.<br />
pick 7d7f3c1 Documentation changes.<br />
<br />
# Rebase 43b5f37..7d7f3c1 onto 43b5f37<br />
#<br />
# Commands:<br />
# p, pick = use commit<br />
# r, reword = use commit, but edit the commit message<br />
# e, edit = use commit, but stop for amending<br />
# s, squash = use commit, but meld into previous commit<br />
# f, fixup = like "squash", but discard this commit's log message<br />
#<br />
# If you remove a line here THAT COMMIT WILL BE LOST.<br />
# However, if you remove everything, the rebase will be aborted.<br />
#<br />
</pre><br />
<br />
We see three lines at the top which contain the first lines from our three commits. We need to change this commit message to tell git rebase what we want to do. What we would like to do is '''pick''' the first commit, and '''squash''' the other two. The end result will be a single commit. The file looks like this when we are done:<br />
<br />
<pre><br />
pick 1e01adb Added documentation.<br />
squash b465a05 Documentation changes.<br />
squash 7d7f3c1 Documentation changes.<br />
...<br />
</pre><br />
<br />
git processes what we've done and puts us back into editing the commit message:<br />
<br />
<pre><br />
# This is a combination of 3 commits.<br />
# The first commit's message is:<br />
Added documentation.<br />
<br />
Added \sa tag to reference DiscreteGaussianImageFilter.<br />
<br />
# This is the 2nd commit message:<br />
<br />
Documentation changes.<br />
<br />
Added \sa tag to reference RecursiveGaussianImageFilter.<br />
<br />
# This is the 3rd commit message:<br />
<br />
Documentation changes.<br />
<br />
Added \sa tag to reference Recursive and Discrete GaussianImageFilters.<br />
<br />
# Please enter the commit message for your changes. Lines starting<br />
# with '#' will be ignored, and an empty message aborts the commit.<br />
# Not currently on any branch.<br />
# Changes to be committed:<br />
# (use "git reset HEAD <file>..." to unstage)<br />
#<br />
# modified: Code/BasicFilters/itkBilateralImageFilter.h<br />
# modified: Code/BasicFilters/itkDiscreteGaussianImageFilter.h<br />
# modified: Code/BasicFilters/itkRecursiveGaussianImageFilter.h<br />
#<br />
</pre><br />
<br />
git has compressed the three commits into one, combining the commit messages and the changes to the code. In the original commits, we only modified one file at a time, but in this new commit, three files are modified. Rewriting the commit message to make it look like one big commit gives:<br />
<br />
<pre><br />
# This is a combination of 3 commits.<br />
# The first commit's message is:<br />
Added documentation.<br />
<br />
Added \sa tag in itkRecursiveGaussianImageFilter to reference<br />
DiscreteGaussianImageFilter. Added \sa tag in itkDiscreteGaussianImageFilter.h to<br />
reference RecursiveGaussianImageFilter. Added \sa tag to reference Recursive and<br />
Discrete GaussianImageFilters in itkBilateralImageFilter.h.<br />
...<br />
</pre><br />
<br />
Now we have a look at our commit history:<br />
<br />
[[File:GerritPrimerSquashedCommit.png ]]<br />
<br />
So our three commits now look like one. git removed the three commits through the rebase command. Remember that these commits only exist in your local clone of the ITK repository. Next step is to push them into Gerrit.<br />
<br />
==== Push your changes into Gerrit ====<br />
First, we need to tell git about the Gerrit server:<br />
<br />
git remote add gerrit USERNAME@review.source.kitware.com:ITK<br />
<br />
(be sure to change '''USERNAME''' to your username on the Gerrit server) This does nothing more than create an alias called '''gerrit''' that can be used for pushing and pulling changes.<br />
<br />
Gerrit needs to know where we intend the code to go, so we'll push our particular commit to a particular place in Gerrit. The '''git push''' command takes three arguments, a destination repository, a local commit and a remote location.<br />
<br />
git push gerrit GerritPrimer:refs/for/master/GerritPrimer<br />
<br />
'''gerrit''' is the destination repository, '''GerritPrimer''' is our local commit, and '''refs/for/master/GerritPrimer''' is the remote commit name. We can call the remote commit anything we like, e.g. '''refs/for/master/foo_bar_garf''', but it is sensible to make a useful name.<br />
<br />
<pre><br />
revelation:ITK(GerritPrimer) blezek$ git push gerrit GerritPrimer:refs/for/master/GerritPrimer<br />
Counting objects: 11, done.<br />
Delta compression using up to 2 threads.<br />
Compressing objects: 100% (7/7), done.<br />
Writing objects: 100% (7/7), 5.88 KiB, done.<br />
Total 7 (delta 4), reused 0 (delta 0)<br />
remote: (W) f62f37: commit message lines >70 characters; manually wrap lines<br />
remote: <br />
remote: New Changes:<br />
remote: http://review.source.kitware.com/75<br />
remote: <br />
To blezek@review.source.kitware.com:ITK<br />
* [new branch] GerritPrimer -> refs/for/master/GerritPrimer<br />
revelation:ITK(GerritPrimer) blezek$ <br />
</pre><br />
<br />
Gerrit has told us that there is a new branch created called GerritPrimer and we can take a look at http://review.source.kitware.com/75. (Looks like we should have wrapped the lines better...)<br />
<br />
==== Review ====<br />
What follows is a simplified overview of the review process. More in-depth information [[ITK/Gerrit/ReviewPrimer|can be found here]]. Our change is now available on the Gerrit site:<br />
<br />
[[File:GerritOpenList.png]]<br />
<br />
Clicking on the link takes us to the page describing the change (http://review.source.kitware.com/75). Here we can invite reviewers to look through the code, comment on the changes, etc...<br />
<br />
Our basic workflow would be to invite a few reviewers through the Gerrit site. They will be notified via email and asked to comment on the code. Reviewers can pull your changes locally, build and test. For a change to be pushed into the official repository, it must be reviewed and verified. The original author is not allowed to vote on commit.<br />
<br />
The review screen looks like this (on a different commit from our primer example):<br />
<br />
[[File:GerritReview.png]]<br />
<br />
In this case, I have reviewed the changes, and marked them as Verified (+1), and Approved (+2). Generally, developers with write access can grant a +2 in the review, while others can only mark +1. A commit takes a score of 2 or more to be approved in the code review box.<br />
<br />
==== Making Changes in Uploaded Patches ====<br />
<br />
The original page is available [[ITK/Gerrit#Making_Changes_in_Uploaded_Patches|here]].<br />
<br />
[[File:GerritScreenAnatomy.png]]<br />
<br />
Really what you need to do is, assuming you are working on gerrit change number #98<br />
<br />
$ git rebase -i HEAD~2<br />
<br />
Two commits should appear with the word 'pick'. You actually need to remove the word pick and replace with 'squash', which can simply be 's':<br />
<br />
pick 641cd36 Add space<br />
s aq98139 Remove space<br />
<br />
Click 'save' from your favorite editor. This will squash the two patches together, and create a new hash for the newly created patchset. The output should then read something like:<br />
<br />
[my_branch_name 1f58239] Remove space<br />
1 files changed, 0 insertions(+), 1 deletions(-)<br />
<br />
Then simply push this newly created patchset (by name 1f58239) to the gerrit "changes" section associating it with the gerrit assigned change number (NOTE: THIS IS NOT THE CHANGE ID!)<br />
<br />
$ git push gerrit 1f58239:refs/changes/98<br />
<br />
These steps assumed you were working on a branch. And you had your [[ITK/Gerrit/Primer#Prerequisites|gerrit hook setup]].<br />
<br />
==== Stage changes into the ITK official repository ====<br />
Once the code has been reviewed, it is now time to migrate the changes into the ITK repository. This topic is [[ITK/Git#Topic_Stage|covered in detail elsewhere]]. Only a developer with commit access to ITK can perform this step.<br />
<br />
==== Pull new changes from ITK repository ====<br />
Once changes have been pushed to the official repository, you must pull them back into your local clone:<br />
<br />
git pull<br />
<br />
== Conclusion ==<br />
Hopefully this primer has been useful to distill some experiences using Gerrit and git into a central location. Gerrit and git are a potent combination, but require a little knowledge and know-how to be used effectively.</div>Hans-johnson@uiowa.eduhttps://public.kitware.com/Wiki/index.php?title=ITK/Gerrit/Primer&diff=31560ITK/Gerrit/Primer2010-10-08T13:02:24Z<p>Hans-johnson@uiowa.edu: /* Making Changes in Uploaded Patches */</p>
<hr />
<div>This primer is to aid the ITK developer community in using Gerrit. Some of the idiosyncrasies of Gerrit take a little work to understand and appreciate, especially if one is new to using the [http://git-scm.com/ git] distributed revision control system.<br />
<br />
==Gerrit basics==<br />
Gerrit is designed to take a single change with a change log and make it publicly available for comments and revisions. Once the change has been sufficiently reviewed and approved, it will be pushed into the official ITK repository. Gerrit addresses the problem of many changes scattered about many git repositories by bringing them into a central place and allowing commenting and changes to become transparent to the rest of the community.<br />
<br />
===Creating a Gerrit account===<br />
In order to register you need to [http://openid.net/get-an-openid/ get an OpenID]. Be aware that a [http://www.gmail.com GMail] account automatically gives you an OpenID.<br />
<br />
To register with Gerrit, first have your OpenID ready. Then visit http://review.source.kitware.com/. Click the "Register" link in the upper left. If you have a Google or Yahoo account, click on the "Register with a Google account". This will create your account. Otherwise, enter the URL of an OpenID provider.<br />
<br />
===Terminology===<br />
<br />
* '''commit''' To git, a [http://book.git-scm.com/1_the_git_object_model.html commit is a group of changes to a repository]. git uses a unique hash algorithm to identify a change (SHA1).<br />
* '''Change-ID''' Gerrit uses an [http://review.source.kitware.com/Documentation/user-changeid.html internal tracking Id to properly refer to a change]. Change-Ids let Gerrit link it's changes to a commit in the git repository.<br />
* '''Change number''' The Gerrit change number is a small number used to identify the commit when pushing to Gerrit.<br />
* '''repo''' An abbreviated form of git repository. May refer to a local repository or a remote repository.<br />
<br />
===Prerequisites===<br />
This primer requires a very basic understanding of git. The reader should begin by understanding:<br />
<br />
# [http://book.git-scm.com/3_normal_workflow.html Normal git workflow]<br />
# [http://book.git-scm.com/3_basic_branching_and_merging.html Basic branching]<br />
<br />
git should be properly setup on your system, and you should identify yourself by name and email:<br />
<br />
<pre><br />
git config --global user.name "Your name goes here"<br />
git config --global user.email "myemailaddress@nowhere.com"<br />
</pre><br />
<br />
This will help us track you down when things break.<br />
<br />
If you are frequently contributing to ITK through Gerrit, please set this configuration:<br />
<br />
<pre><br />
git config hooks.GerritId true<br />
</pre><br />
<br />
This setting can be done once globally ('''--global''' flag), or on a repo by repo case (the default). This setting automatically adds the Change-Id to any commits which greatly simplifies submission of subsequent revisions or commits.<br />
<br />
==git / Gerrit workflow==<br />
For the sake of this primer, we'll be making a series of small documentation changes to ITK code. The basic workflow from the developer's standpoint is:<br />
<br />
* Clone the ITK official repository<br />
* Create a topic branch<br />
* Edit, commit, edit, commit, ad infinitum<br />
* Compress your branch into a single commit<br />
* Push your changes into Gerrit<br />
* Review<br />
* Stage changes into the ITK official repository<br />
* Pull new changes from ITK repository<br />
<br />
These steps will be detailed in the next sections.<br />
<br />
==== Clone the ITK official repository ====<br />
The instructions for cloning the official repository are [[ITK/Git|here]]. For the minimalist:<br />
<br />
git clone git://itk.org/ITK.git<br />
cd ITK<br />
<br />
==== Create a topic branch ====<br />
git works well to create "micro-branches". Frequently, branches are considered poor practice in centralized revision control systems such as CVS and Subversion. However, in git branches are typically very easy to work with and manipulate. They are required for working with Gerrit, so get used to them.<br />
<br />
We'll call our branch GerritPrimer. The branch may be created it two steps:<br />
<br />
git branch GerritPrimer # Create a new branch from our existing revision<br />
git checkout GerritPrimer # Switch our working directory into the GerritPrimer branch<br />
<br />
or you can do this all at once:<br />
<br />
git checkout -b GerritPrimer # Create GerritPrimer and switch the working directory into that revision<br />
<br />
When we are finished, our revision history looks like this:<br />
<br />
[[File:GerritPrimerBranch.png]]<br />
<br />
Notice that GerritPrimer, master, origin/HEAD and origin/master branches all point to the same commit. You can think of branches is movable labels that point to a particular commit in the revision history. As we add code and commit our changes, we'll see GerritPrimer move.<br />
<br />
==== Edit, test, commit, edit, test, commit, ad infinitum ====<br />
Next, we'll edit some files and commit the changes. In this primer, we'll make 3 changes.<br />
<br />
Edit ITK/Code/BasicFilters/itkRecursiveGaussianImageFilter.h<br />
add " * \see DiscreteGaussianImageFilter" on line 54<br />
<br />
Run the tests:<br />
<br />
ctest<br />
<br />
When all passes, we ask git to show us what's happening with our modifications:<br />
<br />
<pre><br />
revelation:ITK(GerritPrimer) blezek$ git status<br />
# On branch GerritPrimer<br />
# Changed but not updated:<br />
# (use "git add <file>..." to update what will be committed)<br />
# (use "git checkout -- <file>..." to discard changes in working directory)<br />
#<br />
# modified: Code/BasicFilters/itkRecursiveGaussianImageFilter.h<br />
#<br />
no changes added to commit (use "git add" and/or "git commit -a")<br />
</pre><br />
<br />
git has the concept of an index, or an area where changes are stored before they are committed. In the listing above, git knows that Code/BasicFilters/itkRecursiveGaussianImageFilter.h is changed, but it has not yet staged that change into the index. To tell git that we want to add this change into the next commit, and make the commit we can do this in two steps:<br />
<br />
git add Code/BasicFilters/itkRecursiveGaussianImageFilter.h # Add the modified code into the index<br />
git commit # commit all modifications<br />
<br />
or in one step:<br />
<br />
git commit -a # Auto-add all modified files into the index, then commit all modifications<br />
<br />
After two more commits, our repository looks like this:<br />
<br />
[[File:GerritPrimerCommits.png]]<br />
<br />
From where we made the branch (master, origin/HEAD, origin/master), we have three commits. Notice that the GerritPrimer tag has moved along with our commits.<br />
<br />
==== Compress your branch into a single commit ====<br />
Gerrit expects only a single commit. If we were to push our branch to Gerrit, it would show up as 3 independent commits for commenting / approvals. Sometimes this is exactly what we want. We would like others to review our changes in three steps. At other times, we want a series of "micro-commits" to be combined into one larger body. ''Please take some time to consider how many commits you would like in Gerrit!'' We need to collapse our three commits into a single commit. This is easily accomplished using the [http://gitready.com/intermediate/2009/01/31/intro-to-rebase.html git rebase command]. What we are going to ask git to do is create one commit from the three that we currently have. The command is:<br />
<br />
git rebase -i HEAD~3<br />
<br />
The -i flag instructs rebase to do this interactively, and "HEAD~3" tells git to collapse the last three commits. We can also use:<br />
<br />
git rebase -i master<br />
<br />
because right now, master and HEAD~3 point to the same commit. We can also use the SHA1 of that particular commit.<br />
<br />
When we run the command we get this:<br />
<br />
<pre><br />
pick 1e01adb Added documentation.<br />
pick b465a05 Documentation changes.<br />
pick 7d7f3c1 Documentation changes.<br />
<br />
# Rebase 43b5f37..7d7f3c1 onto 43b5f37<br />
#<br />
# Commands:<br />
# p, pick = use commit<br />
# r, reword = use commit, but edit the commit message<br />
# e, edit = use commit, but stop for amending<br />
# s, squash = use commit, but meld into previous commit<br />
# f, fixup = like "squash", but discard this commit's log message<br />
#<br />
# If you remove a line here THAT COMMIT WILL BE LOST.<br />
# However, if you remove everything, the rebase will be aborted.<br />
#<br />
</pre><br />
<br />
We see three lines at the top which contain the first lines from our three commits. We need to change this commit message to tell git rebase what we want to do. What we would like to do is '''pick''' the first commit, and '''squash''' the other two. The end result will be a single commit. The file looks like this when we are done:<br />
<br />
<pre><br />
pick 1e01adb Added documentation.<br />
squash b465a05 Documentation changes.<br />
squash 7d7f3c1 Documentation changes.<br />
...<br />
</pre><br />
<br />
git processes what we've done and puts us back into editing the commit message:<br />
<br />
<pre><br />
# This is a combination of 3 commits.<br />
# The first commit's message is:<br />
Added documentation.<br />
<br />
Added \sa tag to reference DiscreteGaussianImageFilter.<br />
<br />
# This is the 2nd commit message:<br />
<br />
Documentation changes.<br />
<br />
Added \sa tag to reference RecursiveGaussianImageFilter.<br />
<br />
# This is the 3rd commit message:<br />
<br />
Documentation changes.<br />
<br />
Added \sa tag to reference Recursive and Discrete GaussianImageFilters.<br />
<br />
# Please enter the commit message for your changes. Lines starting<br />
# with '#' will be ignored, and an empty message aborts the commit.<br />
# Not currently on any branch.<br />
# Changes to be committed:<br />
# (use "git reset HEAD <file>..." to unstage)<br />
#<br />
# modified: Code/BasicFilters/itkBilateralImageFilter.h<br />
# modified: Code/BasicFilters/itkDiscreteGaussianImageFilter.h<br />
# modified: Code/BasicFilters/itkRecursiveGaussianImageFilter.h<br />
#<br />
</pre><br />
<br />
git has compressed the three commits into one, combining the commit messages and the changes to the code. In the original commits, we only modified one file at a time, but in this new commit, three files are modified. Rewriting the commit message to make it look like one big commit gives:<br />
<br />
<pre><br />
# This is a combination of 3 commits.<br />
# The first commit's message is:<br />
Added documentation.<br />
<br />
Added \sa tag in itkRecursiveGaussianImageFilter to reference<br />
DiscreteGaussianImageFilter. Added \sa tag in itkDiscreteGaussianImageFilter.h to<br />
reference RecursiveGaussianImageFilter. Added \sa tag to reference Recursive and<br />
Discrete GaussianImageFilters in itkBilateralImageFilter.h.<br />
...<br />
</pre><br />
<br />
Now we have a look at our commit history:<br />
<br />
[[File:GerritPrimerSquashedCommit.png ]]<br />
<br />
So our three commits now look like one. git removed the three commits through the rebase command. Remember that these commits only exist in your local clone of the ITK repository. Next step is to push them into Gerrit.<br />
<br />
==== Push your changes into Gerrit ====<br />
First, we need to tell git about the Gerrit server:<br />
<br />
git remote add gerrit USERNAME@review.source.kitware.com:ITK<br />
<br />
(be sure to change '''USERNAME''' to your username on the Gerrit server) This does nothing more than create an alias called '''gerrit''' that can be used for pushing and pulling changes.<br />
<br />
Gerrit needs to know where we intend the code to go, so we'll push our particular commit to a particular place in Gerrit. The '''git push''' command takes three arguments, a destination repository, a local commit and a remote location.<br />
<br />
git push gerrit GerritPrimer:refs/for/master/GerritPrimer<br />
<br />
'''gerrit''' is the destination repository, '''GerritPrimer''' is our local commit, and '''refs/for/master/GerritPrimer''' is the remote commit name. We can call the remote commit anything we like, e.g. '''refs/for/master/foo_bar_garf''', but it is sensible to make a useful name.<br />
<br />
<pre><br />
revelation:ITK(GerritPrimer) blezek$ git push gerrit GerritPrimer:refs/for/master/GerritPrimer<br />
Counting objects: 11, done.<br />
Delta compression using up to 2 threads.<br />
Compressing objects: 100% (7/7), done.<br />
Writing objects: 100% (7/7), 5.88 KiB, done.<br />
Total 7 (delta 4), reused 0 (delta 0)<br />
remote: (W) f62f37: commit message lines >70 characters; manually wrap lines<br />
remote: <br />
remote: New Changes:<br />
remote: http://review.source.kitware.com/75<br />
remote: <br />
To blezek@review.source.kitware.com:ITK<br />
* [new branch] GerritPrimer -> refs/for/master/GerritPrimer<br />
revelation:ITK(GerritPrimer) blezek$ <br />
</pre><br />
<br />
Gerrit has told us that there is a new branch created called GerritPrimer and we can take a look at http://review.source.kitware.com/75. (Looks like we should have wrapped the lines better...)<br />
<br />
==== Review ====<br />
What follows is a simplified overview of the review process. More in-depth information [[ITK/Gerrit/ReviewPrimer|can be found here]]. Our change is now available on the Gerrit site:<br />
<br />
[[File:GerritOpenList.png]]<br />
<br />
Clicking on the link takes us to the page describing the change (http://review.source.kitware.com/75). Here we can invite reviewers to look through the code, comment on the changes, etc...<br />
<br />
Our basic workflow would be to invite a few reviewers through the Gerrit site. They will be notified via email and asked to comment on the code. Reviewers can pull your changes locally, build and test. For a change to be pushed into the official repository, it must be reviewed and verified. The original author is not allowed to vote on commit.<br />
<br />
The review screen looks like this (on a different commit from our primer example):<br />
<br />
[[File:GerritReview.png]]<br />
<br />
In this case, I have reviewed the changes, and marked them as Verified (+1), and Approved (+2). Generally, developers with write access can grant a +2 in the review, while others can only mark +1. A commit takes a score of 2 or more to be approved in the code review box.<br />
<br />
==== Making Changes in Uploaded Patches ====<br />
<br />
The original page is available [[ITK/Gerrit#Making_Changes_in_Uploaded_Patches|here]].<br />
<br />
[File:GerritScreenAnatomy.png]<br />
<br />
Really what you need to do is, assuming you are working on gerrit change number #98<br />
<br />
$ git rebase -i HEAD~2<br />
<br />
Two commits should appear with the word 'pick'. You actually need to remove the word pick and replace with 'squash', which can simply be 's':<br />
<br />
pick 641cd36 Add space<br />
s aq98139 Remove space<br />
<br />
Click 'save' from your favorite editor. This will squash the two patches together, and create a new hash for the newly created patchset. The output should then read something like:<br />
<br />
[my_branch_name 1f58239] Remove space<br />
1 files changed, 0 insertions(+), 1 deletions(-)<br />
<br />
Then simply push this newly created patchset (by name 1f58239) to the gerrit "changes" section associating it with the gerrit assigned change number (NOTE: THIS IS NOT THE CHANGE ID!)<br />
<br />
$ git push gerrit 1f58239:refs/changes/98<br />
<br />
These steps assumed you were working on a branch. And you had your [[ITK/Gerrit/Primer#Prerequisites|gerrit hook setup]].<br />
<br />
==== Stage changes into the ITK official repository ====<br />
Once the code has been reviewed, it is now time to migrate the changes into the ITK repository. This topic is [[ITK/Git#Topic_Stage|covered in detail elsewhere]]. Only a developer with commit access to ITK can perform this step.<br />
<br />
==== Pull new changes from ITK repository ====<br />
Once changes have been pushed to the official repository, you must pull them back into your local clone:<br />
<br />
git pull<br />
<br />
== Conclusion ==<br />
Hopefully this primer has been useful to distill some experiences using Gerrit and git into a central location. Gerrit and git are a potent combination, but require a little knowledge and know-how to be used effectively.</div>Hans-johnson@uiowa.eduhttps://public.kitware.com/Wiki/index.php?title=File:GerritScreenAnatomy.png&diff=31559File:GerritScreenAnatomy.png2010-10-08T12:54:50Z<p>Hans-johnson@uiowa.edu: This file gives the anatomy of the gerrit screen to help determine what the change id is for the patch that you are applying.</p>
<hr />
<div>This file gives the anatomy of the gerrit screen to help determine what the change id is for the patch that you are applying.</div>Hans-johnson@uiowa.eduhttps://public.kitware.com/Wiki/index.php?title=ITK/Policies_and_Procedures&diff=26002ITK/Policies and Procedures2010-07-30T19:00:54Z<p>Hans-johnson@uiowa.edu: </p>
<hr />
<div>ITK policies describe the rules or guidelines for elements of the ITK software engineering process. Procedures describe how to implement these rules or guideline. Each policy includes either a procedure or has a corresponding page describing the procedure. This document organizes the policies and procedures in a single location.<br />
<br />
A study of the Debian open source governance is described [http://www.techforce.com.br/index.php/news/linux_blog/scientific_study_about_debian_governance_and_organization here].<br />
<br />
'''NOTE; This page is under construction.'''<br />
<br />
== Adding Features ==<br />
[[ITK_Procedure_for_Contributing_New_Classes_and_Algorithms|Policy and Procedures for Contributing New_Classes and Algorithms]]<br />
<br />
== Backward Compatibility ==<br />
[http://insightsoftwareconsortium.org/wiki/index.php/Administration-BackwardCompatibility Backward Compatibility Policy]<br />
<br />
[[Media:ITKAPIChangePolicy.pdf|Backward Compatibility White Paper]]<br />
<br />
[[ITK Backward Compatibility Open Discussion|Backward Compatibility Open Discussion]]<br />
<br />
[[ITK Deprecation Procedure|Deprecation Procedure]]<br />
<br />
== Coding Style ==<br />
<br />
[[ITK_Coding_Style_Guide|Coding Style Guidelines]]<br />
<br />
[[ITK Procedure for Checking Style|Procedure for Checking Style]]<br />
<br />
== Reporting and Fixing Bugs ==<br />
[[ITK_Procedure_for_Contributing_Bug_Fixes|Policy and Procedures for Reporting and Fixing Bugs]]<br />
<br />
== Generating a Release ==<br />
[[ITK_How_to_make_a_Release|Procedure for Generating a Release]]<br />
<br />
== Fixing Bugs in a Release ==<br />
[[ITK_Rules_for_CVS_Contributors#Release_Branches|Procedure for Fixing Bugs in a Release]]<br />
[[ITKContribute|Updated procedure for git]]<br />
<br />
== Becoming an ITK Developer ==<br />
[[ITK Policy and Procedures for Adding Developers|Policy and Procedures for Adding Developers]]<br />
<br />
== Adding Dashboards ==<br />
[[ITK Policy and Procedures for Adding Dashboards|Policy and Procedures for Adding Dashboards]]<br />
<br />
== Adding Tests ==<br />
[[ITK Procedure for Adding a Test|ITK Policy and Procedures for Adding Tests]]<br />
<br />
== Internationalization ==<br />
[[ITK Policy and Procedures for Internationalization|Policy and Procedures for Internationalization]]</div>Hans-johnson@uiowa.eduhttps://public.kitware.com/Wiki/index.php?title=ITK/Oversight_Committee&diff=1108ITK/Oversight Committee2005-05-27T17:32:39Z<p>Hans-johnson@uiowa.edu: /* Proposals */</p>
<hr />
<div>= Oversight Committe =<br />
<br />
The group of ITK developers have selected an oversight committee that will evaluate and discuss additions and modifications of the code in ITK.<br />
<br />
<br />
The members of the current committee are listed in the following table<br />
<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name!! Organization<br />
|-<br />
| Hans Johnson || University of Iowa<br />
|-<br />
| Julien Jomier || University of North Carolina<br />
|-<br />
| Josh Cates || University of Utah<br />
|-<br />
| Jim Miller || GE Research<br />
|-<br />
| Lydia Ng || Allen Institute of Brain Science<br />
|}<br />
<br />
= Dashboard Oversight =<br />
<br />
A Dashboard Czar will be named every three months. The role of the Dashboard czar will be to track and solve problems that are shown in the Dashboard related to specific machines. The current honor has been assigned to David Holmes from Mayo Clinic. Information about the Dashboard oversight are available in the following link<br />
<br />
* [[ITK Dashboard Oversight|Dashboard Oversight]]<br />
<br />
= ITK Road Map 2005-2006 =<br />
<br />
This section is intended to gather ideas and suggestions regarding the features and functionalities that users and developers would like to see included in future releases of ITK. The scope of the feature should be appropriate for one year of activity.<br />
<br />
* [[ITK Roadmap 2005 2006|Roadmap 2005-2006]]<br />
<br />
= Oversight Proposal Process =<br />
<br />
ITK has a review process for adding new functionality. After a discussion period, the Oversight Committe can be petitioned to accept, modify or reject the proposal.<br />
* [[ITK Oversight Proposal Process|Oversight Proposal Process]]<br />
<br />
= Proposals =<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Title!! Contact!! Creation Date!! Discussed !! Implementation !! Status<br />
|-<br />
| [[Proposals:Logging|Logging]] || [[Users:blezek|Daniel Blezek]] || March 4, 2005 || March 4, 2005 || March 31, 2005 || Log4cxx Rejected, will not build on gcc 2.95<br />
|-<br />
| [[Proposals:Orientation|Image Orientation]] || [[Users:lorensen|Bill Lorensen]] || February 18, 2005 || March 31, 2005 || Checked in April 6, 2005 || Evaluating<br />
|-<br />
| [[Proposals:RandomNumbers|Random Number Generation]] || [[Users:blezek|Dan Blezek]] || March 15, 2005 || || || Proposed<br />
|-<br />
| [[Proposals:TransformIOFactory|Transform IO Factory]] || [[Users:blezek|Daniel Blezek]] || March 25, 2005 || March 25, 2005 || April 1, 2005 || Working prototype, needs support from BSplineTransform<br />
|-<br />
| [[Proposals:IteratorTraits|Iterator Traits]] || [[Users:millerjv|Jim Miller]] || April 7, 2005 || || || Proposed<br />
|-<br />
| [[Proposals:UnpublishedWorkMacro|Unpublised Work Macro]] || [[Users:ibanez|Luis Ibanez]] || April 7, 2005 || || || Proposed<br />
|-<br />
| [[Proposals:DeprecationProcedure|Deprecation Procedure]] || [[Users:ibanez|Luis Ibanez]] || April 8, 2005 || || || Proposed<br />
|-<br />
| [[Proposals:DashboardEnforcementAgency|Dashboard Enforcement Agency]] || [[Users:ibanez|Luis Ibanez]] || April 8, 2005 || || || Proposed<br />
|-<br />
| [[Proposals:Make GDCM the default DICOM|Make GDCM the default DICOM]] || [[Users:lorensen|Bill Lorensen]] || April 18, 2005 || || || Proposed<br />
|-<br />
| [[Proposals:Add nifti file IO|Add nifti file IO]] || [[Users:hjohnson|Hans Johnson]] || May 22, 2005 ||May 27, 2005 || || Proposed<br />
|-<br />
| [[Proposals:Plugin IO mechanisms|Plugin IO mechanisms]] || [[Users:millerjv|Jim Miller]] || April 29, 2005 || April 29, 2005 || Distant past || Capability already existed in ITK. Added documentation to [[Plugin IO mechanisms|Wiki]].<br />
|-<br />
| [[Proposals:FITS ImageIO|Support FITS Image format]] || [[Users:ibanez|Luis Ibanez]] || April 29, 2005 || || || Proposed<br />
|-<br />
| [[Proposals:Slice contiguous images|Slice contiguous images]] || [[Users:millerjv|Jim Miller]] || May 17, 2005 || || || ||<br />
|}</div>Hans-johnson@uiowa.eduhttps://public.kitware.com/Wiki/index.php?title=Proposals:Add_nifti_file_IO&diff=2772Proposals:Add nifti file IO2005-05-22T17:56:04Z<p>Hans-johnson@uiowa.edu: </p>
<hr />
<div>=Add NiFTI IO=<br />
<br />
The approach to integrating the NiFTI file format is similar to that of the NRRDIO and MetaImage File formats. The University of Iowa will take the lead role in this effort.<br />
<br />
http://nifti.nimh.nih.gov/<br />
<br />
The goal is to foster interoperability at the file-exchange level between FMRI data analysis software packages.<br />
<br />
The following image processing packages committed to support this format for both input and output.<br />
BRAINS<br />
AFNI<br />
BrainVoyager<br />
FSL<br />
SPM<br />
<br />
To provide the Insight Toolkit (www.itk.org) with the ability to read and write nifti file formats the following tasks need to be done:<br />
<br />
Contributions I intend to make to nifti (upon approval of course):<br />
1) Place the nifticlib as a part of the standard Insight/Utilities nightly build<br />
1a) Augment the reference nifticlib with CMake building infrastructure<br />
1b) Remove all compiler errors and warnings that arrise from building<br />
under the ITK platforms every night.<br />
1c) Create test suite that reaches 80% code coverage of the nifticlib<br />
code within the ctest framework<br />
1d) Write an ITKIO proper IO filter that utilizes the nifticlib<br />
2) Syncronize Insight/Sourceforge http://nifti.sourceforge.net<br />
2a) The fortified code will kept in sync with the sourceforge nifticlib<br />
2b) Much of the testing suite will be</div>Hans-johnson@uiowa.eduhttps://public.kitware.com/Wiki/index.php?title=ITK/Oversight_Committee&diff=1102ITK/Oversight Committee2005-05-22T17:41:40Z<p>Hans-johnson@uiowa.edu: /* Proposals */</p>
<hr />
<div>= Oversight Committe =<br />
<br />
The group of ITK developers have selected an oversight committee that will evaluate and discuss additions and modifications of the code in ITK.<br />
<br />
<br />
The members of the current committee are listed in the following table<br />
<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Name!! Organization<br />
|-<br />
| Hans Johnson || University of Iowa<br />
|-<br />
| Julien Jomier || University of North Carolina<br />
|-<br />
| Josh Cates || University of Utah<br />
|-<br />
| Jim Miller || GE Research<br />
|-<br />
| Lydia Ng || Allen Institute of Brain Science<br />
|}<br />
<br />
= Dashboard Oversight =<br />
<br />
A Dashboard Czar will be named every three months. The role of the Dashboard czar will be to track and solve problems that are shown in the Dashboard related to specific machines. The current honor has been assigned to David Holmes from Mayo Clinic. Information about the Dashboard oversight are available in the following link<br />
<br />
* [[ITK Dashboard Oversight|Dashboard Oversight]]<br />
<br />
= ITK Road Map 2005-2006 =<br />
<br />
This section is intended to gather ideas and suggestions regarding the features and functionalities that users and developers would like to see included in future releases of ITK. The scope of the feature should be appropriate for one year of activity.<br />
<br />
* [[ITK Roadmap 2005 2006|Roadmap 2005-2006]]<br />
<br />
= Oversight Proposal Process =<br />
<br />
ITK has a review process for adding new functionality. After a discussion period, the Oversight Committe can be petitioned to accept, modify or reject the proposal.<br />
* [[ITK Oversight Proposal Process|Oversight Proposal Process]]<br />
<br />
= Proposals =<br />
{| border="1"<br />
|- bgcolor="#abcdef"<br />
! Title!! Contact!! Creation Date!! Discussed !! Implementation !! Status<br />
|-<br />
| [[Proposals:Logging|Logging]] || [[Users:blezek|Daniel Blezek]] || March 4, 2005 || March 4, 2005 || March 31, 2005 || Log4cxx Rejected, will not build on gcc 2.95<br />
|-<br />
| [[Proposals:Orientation|Image Orientation]] || [[Users:lorensen|Bill Lorensen]] || February 18, 2005 || March 31, 2005 || Checked in April 6, 2005 || Evaluating<br />
|-<br />
| [[Proposals:RandomNumbers|Random Number Generation]] || [[Users:blezek|Dan Blezek]] || March 15, 2005 || || || Proposed<br />
|-<br />
| [[Proposals:TransformIOFactory|Transform IO Factory]] || [[Users:blezek|Daniel Blezek]] || March 25, 2005 || March 25, 2005 || April 1, 2005 || Working prototype, needs support from BSplineTransform<br />
|-<br />
| [[Proposals:IteratorTraits|Iterator Traits]] || [[Users:millerjv|Jim Miller]] || April 7, 2005 || || || Proposed<br />
|-<br />
| [[Proposals:UnpublishedWorkMacro|Unpublised Work Macro]] || [[Users:ibanez|Luis Ibanez]] || April 7, 2005 || || || Proposed<br />
|-<br />
| [[Proposals:DeprecationProcedure|Deprecation Procedure]] || [[Users:ibanez|Luis Ibanez]] || April 8, 2005 || || || Proposed<br />
|-<br />
| [[Proposals:DashboardEnforcementAgency|Dashboard Enforcement Agency]] || [[Users:ibanez|Luis Ibanez]] || April 8, 2005 || || || Proposed<br />
|-<br />
| [[Proposals:Make GDCM the default DICOM|Make GDCM the default DICOM]] || [[Users:lorensen|Bill Lorensen]] || April 18, 2005 || || || Proposed<br />
|-<br />
| [[Proposals:Add nifti file IO|Add nifti file IO]] || [[Users:hjohnson|Hans Johnson]] || May 22, 2005 || || || Proposed<br />
|-<br />
| [[Proposals:Plugin IO mechanisms|Plugin IO mechanisms]] || [[Users:millerjv|Jim Miller]] || April 29, 2005 || April 29, 2005 || Distant past || Capability already existed in ITK. Added documentation to [[Plugin IO mechanisms|Wiki]].<br />
|-<br />
| [[Proposals:FITS ImageIO|Support FITS Image format]] || [[Users:ibanez|Luis Ibanez]] || April 29, 2005 || || || Proposed<br />
|-<br />
| [[Proposals:Slice contiguous images|Slice contiguous images]] || [[Users:millerjv|Jim Miller]] || May 17, 2005 || || || ||<br />
|}</div>Hans-johnson@uiowa.edu