Distributed Development with Bazaar

Distributed Development with Bazaar

Overview An extremely flexible tool Example: the management of ABINIT The end Distributed development with Bazaar Yann Pouillon 1. Facultad de Químicas, Universidad del País Vasco UPV/EHU, Donostia-San Sebastián, Spain. 2. European Theoretical Spectroscopy Facility (ETSF), Spain. CECAM Tutorial — Zaragoza, Spain 2010/06/21 Overview An extremely flexible tool Example: the management of ABINIT The end Outline 1 Overview An evolutionary process Quick tour of Bazaar 2.1 2 An extremely flexible tool Keeping up with an evolving project Popular Bazaar workflows 3 Example: the management of ABINIT Sustaining the growth of the code The ABINIT Forge Overview An extremely flexible tool Example: the management of ABINIT The end Outline 1 Overview An evolutionary process Quick tour of Bazaar 2.1 2 An extremely flexible tool Keeping up with an evolving project Popular Bazaar workflows 3 Example: the management of ABINIT Sustaining the growth of the code The ABINIT Forge Overview An extremely flexible tool Example: the management of ABINIT The end Different times, different challenges, different models 1970’s: first steps (SCCS times) VCS = tool to keep history of single files weave method: uniform data retrieval time outcome: SCCS adopted by Unix 1980’s: from solo to team work (RCS times) independent streams of development project management & VCS decoupled outcome: data retrieval efficiency & reliability 1990’s: organizing collaboration (CVS times) golden age of client-server model uprising of the centralized model outcome: atomicity, file management, deployment 2000’s: going back to freedom emergence of the distributed model explosion of "ecological diversity" outcome: better flexibility, usability & scaling Overview An extremely flexible tool Example: the management of ABINIT The end Different times, different challenges, different models 1970’s: first steps (SCCS times) VCS = tool to keep history of single files weave method: uniform data retrieval time outcome: SCCS adopted by Unix 1980’s: from solo to team work (RCS times) independent streams of development project management & VCS decoupled outcome: data retrieval efficiency & reliability 1990’s: organizing collaboration (CVS times) golden age of client-server model uprising of the centralized model outcome: atomicity, file management, deployment 2000’s: going back to freedom emergence of the distributed model explosion of "ecological diversity" outcome: better flexibility, usability & scaling Overview An extremely flexible tool Example: the management of ABINIT The end Different times, different challenges, different models 1970’s: first steps (SCCS times) VCS = tool to keep history of single files weave method: uniform data retrieval time outcome: SCCS adopted by Unix 1980’s: from solo to team work (RCS times) independent streams of development project management & VCS decoupled outcome: data retrieval efficiency & reliability 1990’s: organizing collaboration (CVS times) golden age of client-server model uprising of the centralized model outcome: atomicity, file management, deployment 2000’s: going back to freedom emergence of the distributed model explosion of "ecological diversity" outcome: better flexibility, usability & scaling Overview An extremely flexible tool Example: the management of ABINIT The end Different times, different challenges, different models 1970’s: first steps (SCCS times) VCS = tool to keep history of single files weave method: uniform data retrieval time outcome: SCCS adopted by Unix 1980’s: from solo to team work (RCS times) independent streams of development project management & VCS decoupled outcome: data retrieval efficiency & reliability 1990’s: organizing collaboration (CVS times) golden age of client-server model uprising of the centralized model outcome: atomicity, file management, deployment 2000’s: going back to freedom emergence of the distributed model explosion of "ecological diversity" outcome: better flexibility, usability & scaling Overview An extremely flexible tool Example: the management of ABINIT The end The centralized model Strength: control Individualistic (driving force = project leader) Requires a server Requires permanent connection to the server Snapshotting & publishing tightly bound Associated social model: benevolent dictatorship Subversion: "subvert the beast" Since 2000: overcome CVS limits while keeping compatibility Today: probably the most popular for the centralized model Reason: smooth transition from CVS Overview An extremely flexible tool Example: the management of ABINIT The end The centralized model Strength: control Individualistic (driving force = project leader) Requires a server Requires permanent connection to the server Snapshotting & publishing tightly bound Associated social model: benevolent dictatorship Subversion: "subvert the beast" Since 2000: overcome CVS limits while keeping compatibility Today: probably the most popular for the centralized model Reason: smooth transition from CVS Overview An extremely flexible tool Example: the management of ABINIT The end The centralized model Strength: control Individualistic (driving force = project leader) Requires a server Requires permanent connection to the server Snapshotting & publishing tightly bound Associated social model: benevolent dictatorship Subversion: "subvert the beast" Since 2000: overcome CVS limits while keeping compatibility Today: probably the most popular for the centralized model Reason: smooth transition from CVS Overview An extremely flexible tool Example: the management of ABINIT The end The distributed model Strength: freedom & autonomy Team-oriented (driving force = community) Exploration of new concepts made easy (no loss of history) Network access: only to publish or access remote changes Associated social model: doocracy the actual developers take the decisions dynamical reorganization, delegation of powers mostly bottom-up structure Bazaar: "VCS for Human Beings" "Just a tool" philosophy + bindings to other VCS’s Overview An extremely flexible tool Example: the management of ABINIT The end The distributed model Strength: freedom & autonomy Team-oriented (driving force = community) Exploration of new concepts made easy (no loss of history) Network access: only to publish or access remote changes Associated social model: doocracy the actual developers take the decisions dynamical reorganization, delegation of powers mostly bottom-up structure Bazaar: "VCS for Human Beings" "Just a tool" philosophy + bindings to other VCS’s Overview An extremely flexible tool Example: the management of ABINIT The end The distributed model Strength: freedom & autonomy Team-oriented (driving force = community) Exploration of new concepts made easy (no loss of history) Network access: only to publish or access remote changes Associated social model: doocracy the actual developers take the decisions dynamical reorganization, delegation of powers mostly bottom-up structure Bazaar: "VCS for Human Beings" "Just a tool" philosophy + bindings to other VCS’s Overview An extremely flexible tool Example: the management of ABINIT The end Centralized vs. distributed: a false debate Former bone of contention Patch bomb = unmanageable contribution Distributed model: no protection Centralized model: just more difficult Patch bomb = social failure =⇒ no technical solution Importance of fluid communication Interplay between social & technical aspects Centralized model popular for historical reasons Balance between control & freedom: YOU choose! Reminder: CVS = beast of SVN −→ SVN = beast of other tools Overview An extremely flexible tool Example: the management of ABINIT The end Centralized vs. distributed: a false debate Former bone of contention Patch bomb = unmanageable contribution Distributed model: no protection Centralized model: just more difficult Patch bomb = social failure =⇒ no technical solution Importance of fluid communication Interplay between social & technical aspects Centralized model popular for historical reasons Balance between control & freedom: YOU choose! Reminder: CVS = beast of SVN −→ SVN = beast of other tools Overview An extremely flexible tool Example: the management of ABINIT The end In conclusion ... Do not feed the troll! Overview An extremely flexible tool Example: the management of ABINIT The end Outline 1 Overview An evolutionary process Quick tour of Bazaar 2.1 2 An extremely flexible tool Keeping up with an evolving project Popular Bazaar workflows 3 Example: the management of ABINIT Sustaining the growth of the code The ABINIT Forge Overview An extremely flexible tool Example: the management of ABINIT The end Main objectives of Bazaar Usability: "DVCS for Human Beings" (Ubuntu philosophy) Portability: only requires Python ≥ 2.4 Efficiency: smart support for renaming files & directories optimal use of disk space minimal overhead (fast branching & merging) Productivity: "just a tool" (read the documentation) Extensibility: Python plugins & well-documented API Pluggability: suitable for embedded systems Safety: strong & active open-source community test suite with > 10,000 automatic tests Freedom: Bazaar is Free Software (GPLv2+) Overview An extremely flexible tool Example: the management of ABINIT The end Bazaar core concepts Revision: snapshot of the state of a file tree Branch: ordered series of revisions Repository: store of revisions (branches sharing history) Working Tree: version-controlled directory holding source Checkout: source tree remotely connected to a branch Standalone Tree: independent branch with working tree Branching: action of splitting development lines Merging:

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    66 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us