=== GOAL: === familiarize people with all aspects of contributing and developing to !SasView * Lower the “fear of the unknown” barrier to getting started (by knowing rather than guessing at what is involved) * A basic understanding of “what/how I might be able to contribute” * Where to go to get started. Where to find information, who to talk to etc. === OUTLINE === 2h 17 min (leaves 45 min for questions and discussion and tangents) * 2 min - Welcome and intro = All the areas are important (hard core coding, documentation, checking math, testing that we get the right answers, testing usability and against crashes, responding to help requests)... * Show Roadmap here? Or later? * 3 min - goals and outline * 20 min - Demo of existing functionality - going through all the menu items and buttons * 10 min - Getting Help and Bug reporting -- tickets (user list, help@) - '''Needs:''' ''reporting bugs and responders to queries (from “how do i” to “why does my model not fit my data”)'' * 10 min - How to write and distribute a model and the model marketplace. '''Needs:''' ''contributing models'' * 35 min - Code structure (where bits live) - '''Needs:''' ''contributing non model code and testing and validation'' * 5 min - !SasView, sasmodels, bumps * 20 min !SasView * 10 min - sasGUI * 10 min - sasCalc * 10 min - sasmodels * 20 min - Documentation - '''Needs:''' ''contributing documentation'' * 5 min - Overview * Use Sphinx to build both dev and user * Uses RST and Latex - currently builds html but plan for a pdf also * 4 min - Dev - '''Needs:''' ''lots of doc strings still missing'' * 4 min - docstrings at the start of “each” class and method * 10 min - User - '''Needs:''' ''never finished'' * 5 min - each section has an RST file (and images as appropriate) * 5 min - Models = the first doc string in the file is scraped to go into model documentation * 1 min - Tutorial …. Need a new one - '''Needs:''' ''help developing tutorial materials'' * 37 min - “Dev ops” * 2 min - Basic concepts in version control - '''EVERYTHING''' is under version control!! * 10 min Git code hosting * 7 min - Concepts in version control (repos, cloning, branching (vs. forking - baaaad), committing (with comments),pull requests, code review *3 min - Setting notifications etc * 25 min - “show me the code”- '''Needs:''' ''developers of all stripes = architecture, GPU, math whiz, sysadmins, ...'' * 5 min - Git code repos (all of them), branches, stats… and CODE * 5 min - Compiling/run.py and local environment * 5 min - Py2exe and Ino -> installer * 5 min - CI - eventually NOT local environment - real test is final build * Travis * Jenkins * 5 min - progress -->trac → ticket -> work * Trac wiki * Trac tickets, milestones, workpackages, roadmap (trac version) * Concluding remarks??