How to Use the Trilinos Infrastructure for Your Own Project James M. Willenbring Michael N. Phenow...

Post on 12-Jan-2016

220 views 3 download

Tags:

Transcript of How to Use the Trilinos Infrastructure for Your Own Project James M. Willenbring Michael N. Phenow...

How to Use the Trilinos How to Use the Trilinos InfrastructureInfrastructure

for Your Own Projectfor Your Own ProjectJames M. WillenbringMichael N. Phenow

Trilinos User GroupWednesday, November 2nd, 2005

11:00 – 11:45 amBuilding 980, Room 24, Albuquerque

ContentsContents

I. Project characteristicsII. GoalsIII. Driving principlesIV. Services & Tools

- Source management- Communication channels- Requirements & issue tracking- Documentation- Configuration management- Information distribution- Automated testing- Release process

Project CharacteristicsProject Characteristics

1. Distributed team2. Numerous small, expert teams3. Evolving, varied requirements4. Budgetary focus on algorithms development5. Funding sources require

1. Release of valuable code2. Certain standard of SQA

GoalsGoals

1. Quality2. Modularity3. Interoperability (internal and external)4. Scalability (algorithms and framework)5. Efficient Use of Expert Time6. Availability7. Support

Driving PrinciplesDriving Principles

1. Global services2. Package orthogonality3. Tight collaborations4. Iterative development5. Process Improvement

Two-tiered architecture

Services & ToolsServices & ToolsSource management CVS & Bonsai, Mailman

Communication channelsMailman, Bugzilla, CVS, Teleconferencing, TUG

Requirements & issue trackingBugzilla, Mailman, Teleconferencing, TUG

Documentation Doxygen, Website, Wiki?

Configuration management Autotools

Information distribution Website, Mailman, Wiki?

Automated testingTest harness, CVS, Website, Mailman

Release processAutotools, CVS, Bugzilla, Website

Source ManagementSource ManagementCVS - concurrent development

- conflict resolution

- version tracking

- code branching

Bonsai - online interface

- blame views

- diff views

- log views

- links to bugzilla

Mailman - commit messages

Communication Communication ChannelsChannelsMailman - developer discussions

Bugzilla - organize bug/issue/enhancement information

CVS - commit logs

Teleconferencing - monthly leaders meeting

Trilinos User Group - annual meeting

Requirements & Issue Requirements & Issue TrackingTrackingBugzilla - organize bug/issue/enhancement information

Mailman - design discussions

Teleconferencing - monthly leaders meeting

Trilinos User Group - annual meeting

DocumentationDocumentationDoxygen - inline with source

- automatically generated

Website - package pages with doxygen documentation

- guides posted

Wiki - rapid, collaborative document creation

Configuration Configuration ManagementManagementAutotools - portability

- Trilinos build system

- package interdependencies

- package interoperabilities

Automated TestingAutomated TestingTest Harness - test definition interface

- test harness scripts

- results database

CVS - tests latest code

- central configuration files

Website - results web pages

Mailman - daily email summaries

Release ProcessRelease ProcessAutotools - distribution tarball

CVS - release tag and branch

- minor release tags

Bugzilla - release checklists

Website - release downloads

QuestionsQuestions

How to Use the Trilinos How to Use the Trilinos InfrastructureInfrastructure

for Your Own Projectfor Your Own Project