Release Engineering               with Tycho and P2Matthias KösterLead SW Engineer IDE @ NumberFour AGEclipse DemoCamp Ham...
N4 IDE
N4 IDE‣ JavaScript IDE based on eclipse DLTK
N4 IDE‣ JavaScript IDE based on eclipse DLTK‣ Currently used company wide ‣ Platform team (Berlin) ‣ Application team (Ham...
N4 IDE‣ JavaScript IDE based on eclipse DLTK‣ Currently used company wide ‣ Platform team (Berlin) ‣ Application team (Ham...
Being a release   engineer
Being a release         engineer‣ 10 years part time release engineer                                                     ...
Being a release         engineer‣ 10 years part time release engineer‣ 5 years ant build for Poseidon for UML ‣ Tamed buil...
Being a release         engineer‣ 10 years part time release engineer‣ 5 years ant build for Poseidon for UML ‣ Tamed buil...
Why maven?
Why maven?aven ks to p                         avin                                       uste                            ...
Why maven?  aven ks to p                                    avin                                                  uste    ...
Why maven?           aven ks to p                                             avin                                        ...
Why maven?           aven ks to p                                             avin                                        ...
Why maven?           aven ks to p                                             avin                                        ...
Why maven?           aven ks to p                                             avin                                        ...
Why maven?                aven ks to p                                                  avin                              ...
Why maven?                aven ks to p                                                  avin                              ...
Why maven?                aven ks to p                                                  avin                              ...
Why maven?                aven ks to p                                                  avin                              ...
Why difficult?photo by huangjiahui on Flickr
Why difficult?                                                         photo by huangjiahui on Flickr‣ OSGi vs. Maven versi...
Why difficult?                                                                                         photo by huangjiahui...
Why difficult?                                                                                         photo by huangjiahui...
Why tycho?
Why tycho?‣ active, open and helpful community
Why tycho?‣ active, open and helpful community‣ easy things easy to do, difficult things possible
Why tycho?‣ active, open and helpful community‣ easy things easy to do, difficult things possible‣ can use good PDE tooling
Why tycho?‣ active, open and helpful community‣ easy things easy to do, difficult things possible‣ can use good PDE tooling...
Why tycho?‣ active, open and helpful community‣ easy things easy to do, difficult things possible‣ can use good PDE tooling...
Why tycho?‣ active, open and helpful community‣ easy things easy to do, difficult things possible‣ can use good PDE tooling...
N4 IDE Buildwith tycho on jenkins
N4 IDE Build   with tycho on jenkins‣ Build with tycho since version 0.9.0   ‣ Tests running on jenkins
N4 IDE Build   with tycho on jenkins‣ Build with tycho since version 0.9.0   ‣ Tests running on jenkins‣ But released manu...
N4 IDE Build   with tycho on jenkins‣ Build with tycho since version 0.9.0   ‣ Tests running on jenkins‣ But released manu...
Releasing with tycho
Releasing with tycho‣ Since 09/2011 releasing  with tycho 0.13.0                            Assembly Line in Detroit Histo...
Releasing with tycho‣ Since 09/2011 releasing  with tycho 0.13.0‣ Branding and native launchers by using  eclipse-reposito...
Releasing with tycho‣ Since 09/2011 releasing  with tycho 0.13.0‣ Branding and native launchers by using  eclipse-reposito...
Releasing with tycho‣ Since 09/2011 releasing  with tycho 0.13.0‣ Branding and native launchers by using  eclipse-reposito...
Challenges whenreleasing with tycho
Challenges when     releasing with tycho                                                http://www.flickr.com/photos/koenve...
Challenges when      releasing with tycho                                                      http://www.flickr.com/photos...
Challenges when      releasing with tycho                                                      http://www.flickr.com/photos...
Challenges when      releasing with tycho                                                                              htt...
Module structure       for tycho-versions-plugin                                                                  parent  ...
Module structure       for tycho-versions-plugin                                                                  parent  ...
Our current solution
Our current solution‣ Using tycho-versions-plugin
Our current solution‣ Using tycho-versions-plugin‣ plugin & features dependencies  with 0.0.0 version
Our current solution‣ Using tycho-versions-plugin‣ plugin & features dependencies  with 0.0.0 version‣ ant script for upda...
Our current solution‣ Using tycho-versions-plugin‣ plugin & features dependencies  with 0.0.0 version‣ ant script for upda...
Our current solution‣ Using tycho-versions-plugin‣ plugin & features dependencies  with 0.0.0 version‣ ant script for upda...
Our current solution‣ Using tycho-versions-plugin‣ plugin & features dependencies  with 0.0.0 version‣ ant script for upda...
Create native installers  http://code.google.com/a/eclipselabs.org/p/tycho-installer-plugin/
Create native installers  http://code.google.com/a/eclipselabs.org/p/tycho-installer-plugin/                              ...
Create native installers   http://code.google.com/a/eclipselabs.org/p/tycho-installer-plugin/                             ...
Create native installers     http://code.google.com/a/eclipselabs.org/p/tycho-installer-plugin/                           ...
Q &A
Q &A‣ Thank you for your attention!
Cloudy Build on  CloudBees
Cloudy Build on  CloudBees
Cloudy Build on  CloudBees
Further improvements
Further improvements‣ Still not mirroring P2 sites ‣ build instability ‣ bad open source citizen ‣ open sourced nexus   p2...
Further improvements‣ Still not mirroring P2 sites ‣ build instability ‣ bad open source citizen ‣ open sourced nexus   p2...
Upcoming SlideShare
Loading in …5
×

Release enginnering with tycho and p2

1,544 views

Published on

Presentation I gave at the eclipse DemoCamp 2012 in Hamburg.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,544
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
23
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Release enginnering with tycho and p2

    1. 1. Release Engineering with Tycho and P2Matthias KösterLead SW Engineer IDE @ NumberFour AGEclipse DemoCamp Hamburg14. Jun 2012 by jin.thai on Flickr Some rights reserved.
    2. 2. N4 IDE
    3. 3. N4 IDE‣ JavaScript IDE based on eclipse DLTK
    4. 4. N4 IDE‣ JavaScript IDE based on eclipse DLTK‣ Currently used company wide ‣ Platform team (Berlin) ‣ Application team (Hamburg)
    5. 5. N4 IDE‣ JavaScript IDE based on eclipse DLTK‣ Currently used company wide ‣ Platform team (Berlin) ‣ Application team (Hamburg)‣ Released at least after each sprint (every 3 weeks)
    6. 6. Being a release engineer
    7. 7. Being a release engineer‣ 10 years part time release engineer picture by Perrenque http://www.flickr.com/photos/perrenque/3289017892
    8. 8. Being a release engineer‣ 10 years part time release engineer‣ 5 years ant build for Poseidon for UML ‣ Tamed build.xml maintenance nightmare with generator feed from UML model picture by Perrenque http://www.flickr.com/photos/perrenque/3289017892
    9. 9. Being a release engineer‣ 10 years part time release engineer‣ 5 years ant build for Poseidon for UML ‣ Tamed build.xml maintenance nightmare with generator feed from UML model‣ PDE ant build for Apollo for UML ‣ Undocumented at that time ‣ One person had all build knowledge picture by Perrenque http://www.flickr.com/photos/perrenque/3289017892
    10. 10. Why maven?
    11. 11. Why maven?aven ks to p avin uste r t in d expe thers. The w ho ) is a tr dge on to o eans one w (also m ass knowle dm dish, an nowledge. ular a partic ord Am ia Yid h o see e brew, v ulation of k field, w mes from H n accum co a maven nds, based on ta unders kipedia) i (from w
    12. 12. Why maven? aven ks to p avin uste r t in d expe thers. The w ho ) is a tr dge on to o eans one w (also m ass knowle dm dish, an nowledge. ular a partic ord Am ia Yid h o see e brew, v ulation of k field, w mes from H n accum co a maven nds, based on ta unders kipedia)‣ I like maven (from w i
    13. 13. Why maven? aven ks to p avin uste r t in d expe thers. The w ho ) is a tr dge on to o eans one w (also m ass knowle dm dish, an nowledge. ular a partic ord Am ia Yid h o see e brew, v ulation of k field, w mes from H n accum co a maven nds, based on ta unders kipedia)‣ I like maven (from w i‣ declarative instead of procedural
    14. 14. Why maven? aven ks to p avin uste r t in d expe thers. The w ho ) is a tr dge on to o eans one w (also m ass knowle dm dish, an nowledge. ular a partic ord Am ia Yid h o see e brew, v ulation of k field, w mes from H n accum co a maven nds, based on ta unders kipedia)‣ I like maven (from w i r till use ant fo‣ declarative instead of procedural You can s proce dural hacks!
    15. 15. Why maven? aven ks to p avin uste r t in d expe thers. The w ho ) is a tr dge on to o eans one w (also m ass knowle dm dish, an nowledge. ular a partic ord Am ia Yid h o see e brew, v ulation of k field, w mes from H n accum co a maven nds, based on ta unders kipedia)‣ I like maven (from w i r till use ant fo‣ declarative instead of procedural You can s proce dural hacks!‣ transitive dependency resolution
    16. 16. Why maven? aven ks to p avin uste r t in d expe thers. The w ho ) is a tr dge on to o eans one w (also m ass knowle dm dish, an nowledge. ular a partic ord Am ia Yid h o see e brew, v ulation of k field, w mes from H n accum co a maven nds, based on ta unders kipedia)‣ I like maven (from w i r till use ant fo‣ declarative instead of procedural You can s proce dural hacks! te rnet,‣ transitive dependency resolution c he in e ;-) kup t for m e to ba ates it n‘t lik autom I do aven but m
    17. 17. Why maven? aven ks to p avin uste r t in d expe thers. The w ho ) is a tr dge on to o eans one w (also m ass knowle dm dish, an nowledge. ular a partic ord Am ia Yid h o see e brew, v ulation of k field, w mes from H n accum co a maven nds, based on ta unders kipedia)‣ I like maven (from w i r till use ant fo‣ declarative instead of procedural You can s proce dural hacks! te rnet,‣ transitive dependency resolution c he in e ;-) kup t for m e to ba ates it n‘t lik autom I do aven‣ standard build life cycyle but m
    18. 18. Why maven? aven ks to p avin uste r t in d expe thers. The w ho ) is a tr dge on to o eans one w (also m ass knowle dm dish, an nowledge. ular a partic ord Am ia Yid h o see e brew, v ulation of k field, w mes from H n accum co a maven nds, based on ta unders kipedia)‣ I like maven (from w i r till use ant fo‣ declarative instead of procedural You can s proce dural hacks! te rnet,‣ transitive dependency resolution c he in e ;-) kup t for m e to ba ates it n‘t lik autom I do aven‣ standard build life cycyle but m‣ DI container allows easy extension
    19. 19. Why maven? aven ks to p avin uste r t in d expe thers. The w ho ) is a tr dge on to o eans one w (also m ass knowle dm dish, an nowledge. ular a partic ord Am ia Yid h o see e brew, v ulation of k field, w mes from H n accum co a maven nds, based on ta unders kipedia)‣ I like maven (from w i r till use ant fo‣ declarative instead of procedural You can s proce dural hacks! te rnet,‣ transitive dependency resolution c he in e ;-) kup t for m e to ba ates it n‘t lik autom I do aven‣ standard build life cycyle but m s aven plugin Writing m‣ DI container allows easy extension is really ea sy & useful !
    20. 20. Why maven? aven ks to p avin uste r t in d expe thers. The w ho ) is a tr dge on to o eans one w (also m ass knowle dm dish, an nowledge. ular a partic ord Am ia Yid h o see e brew, v ulation of k field, w mes from H n accum co a maven nds, based on ta unders kipedia)‣ I like maven (from w i r till use ant fo‣ declarative instead of procedural You can s proce dural hacks! te rnet,‣ transitive dependency resolution c he in e ;-) kup t for m e to ba ates it n‘t lik autom I do aven‣ standard build life cycyle but m s aven plugin Writing m‣ DI container allows easy extension is really ea sy & useful !‣ de facto standard java build tool
    21. 21. Why difficult?photo by huangjiahui on Flickr
    22. 22. Why difficult? photo by huangjiahui on Flickr‣ OSGi vs. Maven versions 1.0.0 < 1.0.0. qualifier 1.0.0-SNAPSH OT < 1.0.0 ‣ WIP @ OSGi alliance
    23. 23. Why difficult? photo by huangjiahui on Flickr‣ OSGi vs. Maven versions 1.0.0 < 1.0.0. qualifier 1.0.0-SNAPSH OT < 1.0.0 ‣ WIP @ OSGi alliance‣ P2 vs. Maven repositories ‣ tycho unifies them PONTO DE CONVERGÊNCIA (Convergence Point) Von jonycunha
    24. 24. Why difficult? photo by huangjiahui on Flickr‣ OSGi vs. Maven versions 1.0.0 < 1.0.0. qualifier 1.0.0-SNAPSH OT < 1.0.0 ‣ WIP @ OSGi alliance‣ P2 vs. Maven repositories ‣ tycho unifies them‣ Eclipse build still very complex ‣ version numbers everywhere ‣ PDE build generates build.xml! PONTO DE CONVERGÊNCIA (Convergence Point) Von jonycunha
    25. 25. Why tycho?
    26. 26. Why tycho?‣ active, open and helpful community
    27. 27. Why tycho?‣ active, open and helpful community‣ easy things easy to do, difficult things possible
    28. 28. Why tycho?‣ active, open and helpful community‣ easy things easy to do, difficult things possible‣ can use good PDE tooling
    29. 29. Why tycho?‣ active, open and helpful community‣ easy things easy to do, difficult things possible‣ can use good PDE tooling‣ tycho gains momentum at eclipse ‣ backed by sonatype & SAP
    30. 30. Why tycho?‣ active, open and helpful community‣ easy things easy to do, difficult things possible‣ can use good PDE tooling‣ tycho gains momentum at eclipse ‣ backed by sonatype & SAP‣ already in use by several projects ‣ CBI, JBoss tools, EGit
    31. 31. Why tycho?‣ active, open and helpful community‣ easy things easy to do, difficult things possible‣ can use good PDE tooling‣ tycho gains momentum at eclipse ‣ backed by sonatype & SAP‣ already in use by several projects ‣ CBI, JBoss tools, EGit Vintage: Girls on a Donkey Von deflam
    32. 32. N4 IDE Buildwith tycho on jenkins
    33. 33. N4 IDE Build with tycho on jenkins‣ Build with tycho since version 0.9.0 ‣ Tests running on jenkins
    34. 34. N4 IDE Build with tycho on jenkins‣ Build with tycho since version 0.9.0 ‣ Tests running on jenkins‣ But released manually with PDE export Women on Assembly Line Stamping Hams Von Wisconsin Historical Images
    35. 35. N4 IDE Build with tycho on jenkins‣ Build with tycho since version 0.9.0 ‣ Tests running on jenkins‣ But released manually with PDE export‣ Missing features (Mac OS X) ‣ Branding ‣ Native launchers Women on Assembly Line Stamping Hams Von Wisconsin Historical Images
    36. 36. Releasing with tycho
    37. 37. Releasing with tycho‣ Since 09/2011 releasing with tycho 0.13.0 Assembly Line in Detroit Historical Museum Von harry_nl
    38. 38. Releasing with tycho‣ Since 09/2011 releasing with tycho 0.13.0‣ Branding and native launchers by using eclipse-repository packaging Assembly Line in Detroit Historical Museum Von harry_nl
    39. 39. Releasing with tycho‣ Since 09/2011 releasing with tycho 0.13.0‣ Branding and native launchers by using eclipse-repository packaging‣ P2 repositories for our IDE, IDL generator & SDK Assembly Line in Detroit Historical Museum Von harry_nl
    40. 40. Releasing with tycho‣ Since 09/2011 releasing with tycho 0.13.0‣ Branding and native launchers by using eclipse-repository packaging‣ P2 repositories for our IDE, IDL generator & SDK‣ Homemade maven plugin for native installers (msi, dmg) Assembly Line in Detroit Historical Museum Von harry_nl
    41. 41. Challenges whenreleasing with tycho
    42. 42. Challenges when releasing with tycho http://www.flickr.com/photos/koenvereeken/2088902012 photo by Koen Vereeken‣ Version numbers everywhere ‣ Maven pom.xml ‣ Eclipse MANIFEST.MF, feature.xml, .product ‣ P2 artifact.xml, content.xml
    43. 43. Challenges when releasing with tycho http://www.flickr.com/photos/koenvereeken/2088902012 photo by Koen Vereeken‣ Version numbers everywhere ‣ Maven pom.xml ‣ Eclipse MANIFEST.MF, feature.xml, .product ‣ P2 artifact.xml, content.xml‣ 6 updatesites, 2 products, 5 features, 70 plugins
    44. 44. Challenges when releasing with tycho http://www.flickr.com/photos/koenvereeken/2088902012 photo by Koen Vereeken‣ Version numbers everywhere ‣ Maven pom.xml ‣ Eclipse MANIFEST.MF, feature.xml, .product ‣ P2 artifact.xml, content.xml‣ 6 updatesites, 2 products, 5 features, 70 plugins‣ tycho version < 1.0.0 ‣ 0.15.0 faster, not tested yet
    45. 45. Challenges when releasing with tycho http://www.flickr.com/photos/koenvereeken/2088902012 photo by Koen Vereeken‣ Version numbers everywhere ‣ Maven pom.xml ‣ Eclipse MANIFEST.MF, feature.xml, .product ‣ P2 artifact.xml, content.xml‣ 6 updatesites, 2 products, 5 features, 70 plugins Von Tambako the Jaguar Nice leopard portrait‣ tycho version < 1.0.0 ‣ 0.15.0 faster, not tested yet
    46. 46. Module structure for tycho-versions-plugin parent rcpmail version 1.0.0 plugin modules feature product see also:https://community.jboss.org/en/tools/blog/2011/09/17/coping-with-versions-in-large-multi-module-osgi-projects
    47. 47. Module structure for tycho-versions-plugin parent rcpmail version 1.0.0 plugin t! Version defined by paren modules feature product see also:https://community.jboss.org/en/tools/blog/2011/09/17/coping-with-versions-in-large-multi-module-osgi-projects
    48. 48. Our current solution
    49. 49. Our current solution‣ Using tycho-versions-plugin
    50. 50. Our current solution‣ Using tycho-versions-plugin‣ plugin & features dependencies with 0.0.0 version
    51. 51. Our current solution‣ Using tycho-versions-plugin‣ plugin & features dependencies with 0.0.0 version‣ ant script for updating product version
    52. 52. Our current solution‣ Using tycho-versions-plugin‣ plugin & features dependencies with 0.0.0 version‣ ant script for updating product version CK!! HA Don‘t try ! this at home
    53. 53. Our current solution‣ Using tycho-versions-plugin‣ plugin & features dependencies with 0.0.0 version‣ ant script for updating product version CK!! HA Don‘t try‣ Separate modules based this at home ! on versioning needs
    54. 54. Our current solution‣ Using tycho-versions-plugin‣ plugin & features dependencies with 0.0.0 version‣ ant script for updating product version CK!! HA Don‘t try‣ Separate modules based this at home ! on versioning needs‣ Linux version schema 1.0.0 < 1.0.1-SNAPSHOT < 1.0.2
    55. 55. Create native installers http://code.google.com/a/eclipselabs.org/p/tycho-installer-plugin/
    56. 56. Create native installers http://code.google.com/a/eclipselabs.org/p/tycho-installer-plugin/ e m o D e T im
    57. 57. Create native installers http://code.google.com/a/eclipselabs.org/p/tycho-installer-plugin/ e m o‣ Reuses metadata from *.product file D e (license, version, manufactor) T im ‣ on Mac OS X creates dmg installer ‣ on Windows creates msi installer
    58. 58. Create native installers http://code.google.com/a/eclipselabs.org/p/tycho-installer-plugin/ e m o‣ Reuses metadata from *.product file D e (license, version, manufactor) T im ‣ on Mac OS X creates dmg installer ‣ on Windows creates msi installer‣ Adapt application folder layout on Mac OS X (fixed in P2/Juno) ‣ https://bugs.eclipse.org/bugs/show_bug.cgi?id=57349 ‣ http://prapicault.blogspot.ca/2012/05/eclipse-based-applications-as- standard.html
    59. 59. Q &A
    60. 60. Q &A‣ Thank you for your attention!
    61. 61. Cloudy Build on CloudBees
    62. 62. Cloudy Build on CloudBees
    63. 63. Cloudy Build on CloudBees
    64. 64. Further improvements
    65. 65. Further improvements‣ Still not mirroring P2 sites ‣ build instability ‣ bad open source citizen ‣ open sourced nexus p2 repository plugin didn‘t work for us
    66. 66. Further improvements‣ Still not mirroring P2 sites ‣ build instability ‣ bad open source citizen ‣ open sourced nexus p2 repository plugin didn‘t work for us and licensed for reuse under this Creative Commons Licence.‣ Small bug fix requires full product update © Copyright Christine Matthews

    ×