Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Iceberg

402 views

Published on

ESUG 2017

Youtube: https://youtu.be/LxPhhQOVpU8

Published in: Software
  • youtube: https://youtu.be/LxPhhQOVpU8
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

Iceberg

  1. 1. About me • Pharo architect since 2012 • Owned a company to develop in Pharo back in 2008 • Java senior architect for 7 years (and 15 years overall java experience) • Web, microprocessors, etc., etc., etc. • JavaScript, C++, ObjC, C#, Delphi, ASM and lots of languages no longer exist or have been long-time forgotten • 24 years (!) programming experience (yes… I’m becoming old)
  2. 2. The Pharo Fireman
  3. 3. What is iceberg • A front-end to work with git using - filetree - libgit2 • Yes, it can be other things tomorrow, but now is that.
  4. 4. Big thanks to Nicolás Passerini He started iceberg development sponsored by the Pharo consortium, then I took over.
  5. 5. Iceberg goals • Nicely move Pharo into git world • Allow Pharo development itself on it • To grow incrementally - Starts with some few use-cases - Add functionality as needed - That’s why there are a lot of functionality missing • Extensible
  6. 6. Why • Monticello is showing age • With time, the “package” metaphor became insufficient. - We now use more complex “projects” - Programs often have different kind of sources
  7. 7. Iceberg Model Iceberg UI Backend Monticello Metamodel
  8. 8. Fork Local clone Local Workspace Somewhere else
  9. 9. GitHub plugin
  10. 10. Pharo plugin
  11. 11. Iceberg status • Version 0.5 released and integrated into Pharo 6.1. • Tested in several projects and working (some minor problems on different platforms) • It works for Pharo 7.0 development, so it should work for you too. • Hot-fixes and updates are being incorporated. • Still some problems with Windows support, mainly because of long paths.
  12. 12. Use-cases we have in mind
  13. 13. Solo
  14. 14. clone work commit push
  15. 15. Team on unique repository
  16. 16. clone branch commit push pull work Pull request
  17. 17. Distributed team
  18. 18. clone branch commit push to fork pull from origin work Pull request FORK
  19. 19. Demo (The Pharo process)
  20. 20. Pharo process in a nutshell • Clone from pharo-project/pharo • Create a branch with issue number (or feature name) • Work on it as needed • Push to your fork • Submit a Pull Request to “development” branch
  21. 21. Ongoing work • 0.5.* : Lot of work on optimisation and bug fixing - Love to windows users (because performance issues there) - Win64 lacks iceberg support (and that’s one of the reasons why there is not official version yet) • 0.6 : Add Cypress format alternative: Tonel
  22. 22. What is Tonel?
  23. 23. Tonel bits • File-per-class - speeds up file IO - reduces real space taken • Easy to read • better encoding of classes/methods using STON for definitions and metadata - Extensible • Allows source exchange also between platforms
  24. 24. Future: 0.7 • Support for multiple directories (allow subtrees) • Update to libgit2 0.26 (just to keep us up-to-date) • …
  25. 25. Thanks!

×