SlideShare a Scribd company logo
Writing Open Source Documentation
for Open Source Projects
How SUSE® is documented and what we can learn from it
Christoph Wickert
Technical Writer
SUSE Linux GmbH
Christoph.Wickert@suse.com
10
WHOAMI
Christoph Wickert
• 1999: Linux user
• 2005: FLOSS Contributor
– Fedora
– Xfce
– LXDE
– OLPC
• 2010: Senior Engineer at Kolab
Systems
• 2016: Technical Documentation
Writer at SUSE
11
WHO ARE WE?
12
WHAT DO WE WANT?
Documentation Overview
Available from SUSE website:
https://www.suse.com/doc
14
Documentation Overview
Official SUSE Product
documentation
• Getting Started
• Quick Install Guides
• Deployment Guides
• User Guides
• Administrator Guides
• Tuning Guides
• Release Notes
• Virtualization Guide
• …
15
TOOLCHAIN
16
TOOLCHAIN – DOCBOOK XML
DocBook
• Semantic markup language for technical documentation
• Originally intended for technical documents related to computer hardware and
software
• Can be used for any other sort of documentation
DocBook XML
• Based on the eXtensible Markup Language (XML)
• Defines content in semantic way similar to HTML
• Written as a schema which fulfills two tasks: guided editing and validation
• http://docbook.org/
17
TOOLCHAIN – $EDITOR
18
TOOLCHAIN – DAPS
19
TOOLCHAIN – DAPS
DAPS examples
• daps validate
• daps pdf (--greyscale) | html (--single)
• daps man | text | mobi | epub | webhelp
• daps spellcheck
• daps stylecheck
• daps xmlformat
• daps images
• daps optipng
20
TOOLCHAIN – DAPS
Advanced daps commands
• Find out in which files a certain ID is used
daps -d <dc-file> list-file --rootid art.daps.quick
• Print a list of all images with modification date
daps -d <dc-file> getimages --modified
• … and show them in a viewer
daps -d <dc-file> getimages --modified 
--show --viewer ristretto
TOOLCHAIN – DAPS
SUSE-specific commands
• Generate a “localization drop” for translation
daps locdrop
• Unpack translated drop file
daps unpack-lockdrop
• Generate online documentation for the SUSE Website
daps onlinedoc
TOOLCHAIN – SUSE XSLT STYLESHEETS
Define the layout for SUSE documentation
• Books: Manuals, Guides
• Articles: Quick Starts, SUSE Best Practices, Shorter Guides
• HTML pages (for all kind of documentation)
Package: suse-xsl-stylesheets
Book / Manual Article HTML
TOOLCHAIN – SUSE STYLE GUIDE
TOOLCHAIN – STYLE CHECKER
Stylechecker
• Checks whether the SUSE
Styleguide guidelines are
followed
• Package suse-doc-style-checker
TOOLCHAIN – ADDITIONAL TOOLS
Yet more tools
• dapsenv – Continuous integration with docker
• dbxinluder – Transclusions for DocBook with XInclude 1.1
• docmanager – Manages DocBook 5 Meta Information
• docstats – Statistics and Metrics for Documentation Team
• geekodoc – RELAX NG Schema for SUSE Documentation
• xmldiffng – Diffing XML with RELAX NG schema
Everything available from https://github.com/openSUSE/
26
PROCESS
PROCESS – GITHUB
PROCESS – GIT WORKFLOW
• ‘Successful git branching modell’ by
Vincent Driessen
• Development happens in develop
• Master branch is only used for releases
• Separate branches for
– Features: feature/fate#12345
– Bugfixes: bugfix/bsc#123456
– Maintenance: maintenance/SLE12
• Constant naming with git-flow-avh
• Merges through GitHub reviews
• More info: http://nvie.com/posts/a-successful-git-branching-model/
PROCESS – OVERVIEW
• Input comes through
– FATE (Feature And Enhancement Tracker)
– Bugzilla
– DocComments
• Evaluation & Planning
• Research (with developers)
• Documentation (Magic happens here!)
• Feedback (from developers)
• Translation
• Publication
Report a bug
PROCESS – FEEDBACK
Provide
comments and
feedback
32
PROBLEMS
PROBLEMS
We have achieved a lot, still there are problems we need to solve
• Continuous integration
• Stuck in the Waterfall
– Short time frame between when a feature is ready for testing/documenting and release
• Decoupled from Development
– Both feature and bug :-)
– High coordination effort
• Monolithic
– High maintenance costs
34
LESSONS LEARNED
35
Docs or it didn’t happen!
36
Developers should not write docs!
37
You need feedback channels!
38
You need (the right) tools!
39
Start small!
41
Documentation should be open!
Writing Open Source Documentation for Open Source Projects

More Related Content

What's hot

Continous Delivery with CQ
Continous Delivery with CQContinous Delivery with CQ
Continous Delivery with CQ
olibur
 
Libre office intro
Libre office introLibre office intro
Libre office introasantaballa
 
College copy
College copyCollege copy
College copy
Nikhil Kumar
 
Server and home linux
Server and home linuxServer and home linux
Server and home linuxTyler Largin
 
Interoperability services
Interoperability servicesInteroperability services
Interoperability servicestrent109
 
Course 101: Lecture 5: Linux & GNU
Course 101: Lecture 5: Linux & GNU Course 101: Lecture 5: Linux & GNU
Course 101: Lecture 5: Linux & GNU
Ahmed El-Arabawy
 

What's hot (7)

Continous Delivery with CQ
Continous Delivery with CQContinous Delivery with CQ
Continous Delivery with CQ
 
Introduction to linux
Introduction to linuxIntroduction to linux
Introduction to linux
 
Libre office intro
Libre office introLibre office intro
Libre office intro
 
College copy
College copyCollege copy
College copy
 
Server and home linux
Server and home linuxServer and home linux
Server and home linux
 
Interoperability services
Interoperability servicesInteroperability services
Interoperability services
 
Course 101: Lecture 5: Linux & GNU
Course 101: Lecture 5: Linux & GNU Course 101: Lecture 5: Linux & GNU
Course 101: Lecture 5: Linux & GNU
 

Similar to Writing Open Source Documentation for Open Source Projects

Markup languages and warp-speed documentation
Markup languages and warp-speed documentationMarkup languages and warp-speed documentation
Markup languages and warp-speed documentation
Lois Patterson
 
Lois Patterson: Markup Languages and Warp-Speed Documentation
Lois Patterson:  Markup Languages and Warp-Speed DocumentationLois Patterson:  Markup Languages and Warp-Speed Documentation
Lois Patterson: Markup Languages and Warp-Speed Documentation
Jack Molisani
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
yalini97
 
PowerShell 101 - What is it and Why should YOU Care!
PowerShell 101 - What is it and Why should YOU Care!PowerShell 101 - What is it and Why should YOU Care!
PowerShell 101 - What is it and Why should YOU Care!
Thomas Lee
 
Linux Presentation_SSD.pdf
Linux Presentation_SSD.pdfLinux Presentation_SSD.pdf
Linux Presentation_SSD.pdf
ssuser37b0e0
 
Introducing linux: a short expedition to the debian environment
Introducing linux: a short expedition to the debian environmentIntroducing linux: a short expedition to the debian environment
Introducing linux: a short expedition to the debian environmentMd. Zahid Hossain Shoeb
 
SFScon22 - Marina Latini - Document it or it never existed.pdf
SFScon22 - Marina Latini - Document it or it never existed.pdfSFScon22 - Marina Latini - Document it or it never existed.pdf
SFScon22 - Marina Latini - Document it or it never existed.pdf
South Tyrol Free Software Conference
 
Topic_2_Introduction_to_Unix.pptx
Topic_2_Introduction_to_Unix.pptxTopic_2_Introduction_to_Unix.pptx
Topic_2_Introduction_to_Unix.pptx
dulala3
 
Code the docs-yu liu
Code the docs-yu liuCode the docs-yu liu
Code the docs-yu liu
StreamNative
 
Holy PowerShell, BATman! - dogfood edition
Holy PowerShell, BATman! - dogfood editionHoly PowerShell, BATman! - dogfood edition
Holy PowerShell, BATman! - dogfood edition
Dave Diehl
 
2016 spice world_london_breakout
2016 spice world_london_breakout2016 spice world_london_breakout
2016 spice world_london_breakout
Thomas Lee
 
Stop making, start composing - Using Composer for Drupal development
Stop making, start composing - Using Composer for Drupal developmentStop making, start composing - Using Composer for Drupal development
Stop making, start composing - Using Composer for Drupal development
kaspergarnaes
 
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
Gaetano Giunta
 
Enlite: Technische Dokumentation auf Basis von Confluence – K15t Solution For...
Enlite: Technische Dokumentation auf Basis von Confluence – K15t Solution For...Enlite: Technische Dokumentation auf Basis von Confluence – K15t Solution For...
Enlite: Technische Dokumentation auf Basis von Confluence – K15t Solution For...
K15t
 
Linux introduction
Linux introductionLinux introduction
Linux introduction
Md. Zahid Hossain Shoeb
 
2014 SpiceWorld London Breakout
2014 SpiceWorld London Breakout2014 SpiceWorld London Breakout
2014 SpiceWorld London Breakout
Thomas Lee
 
Pitch open plant_fund_dokubricks_v8
Pitch open plant_fund_dokubricks_v8Pitch open plant_fund_dokubricks_v8
Pitch open plant_fund_dokubricks_v8
docubricks
 
Docubricks Cambridge Open Plant Pitch
Docubricks Cambridge Open Plant Pitch Docubricks Cambridge Open Plant Pitch
Docubricks Cambridge Open Plant Pitch
docubricks
 

Similar to Writing Open Source Documentation for Open Source Projects (20)

Markup languages and warp-speed documentation
Markup languages and warp-speed documentationMarkup languages and warp-speed documentation
Markup languages and warp-speed documentation
 
Lois Patterson: Markup Languages and Warp-Speed Documentation
Lois Patterson:  Markup Languages and Warp-Speed DocumentationLois Patterson:  Markup Languages and Warp-Speed Documentation
Lois Patterson: Markup Languages and Warp-Speed Documentation
 
Top 10 dev ops tools (1)
Top 10 dev ops tools (1)Top 10 dev ops tools (1)
Top 10 dev ops tools (1)
 
PowerShell 101 - What is it and Why should YOU Care!
PowerShell 101 - What is it and Why should YOU Care!PowerShell 101 - What is it and Why should YOU Care!
PowerShell 101 - What is it and Why should YOU Care!
 
Linux Presentation_SSD.pdf
Linux Presentation_SSD.pdfLinux Presentation_SSD.pdf
Linux Presentation_SSD.pdf
 
Introducing linux: a short expedition to the debian environment
Introducing linux: a short expedition to the debian environmentIntroducing linux: a short expedition to the debian environment
Introducing linux: a short expedition to the debian environment
 
SFScon22 - Marina Latini - Document it or it never existed.pdf
SFScon22 - Marina Latini - Document it or it never existed.pdfSFScon22 - Marina Latini - Document it or it never existed.pdf
SFScon22 - Marina Latini - Document it or it never existed.pdf
 
Topic_2_Introduction_to_Unix.pptx
Topic_2_Introduction_to_Unix.pptxTopic_2_Introduction_to_Unix.pptx
Topic_2_Introduction_to_Unix.pptx
 
Code the docs-yu liu
Code the docs-yu liuCode the docs-yu liu
Code the docs-yu liu
 
Holy PowerShell, BATman! - dogfood edition
Holy PowerShell, BATman! - dogfood editionHoly PowerShell, BATman! - dogfood edition
Holy PowerShell, BATman! - dogfood edition
 
2016 spice world_london_breakout
2016 spice world_london_breakout2016 spice world_london_breakout
2016 spice world_london_breakout
 
NIF Data Ingest
NIF Data IngestNIF Data Ingest
NIF Data Ingest
 
Stop making, start composing - Using Composer for Drupal development
Stop making, start composing - Using Composer for Drupal developmentStop making, start composing - Using Composer for Drupal development
Stop making, start composing - Using Composer for Drupal development
 
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
eZ Publish 5: from zero to automated deployment (and no regressions!) in one ...
 
2. introduction to linux
2. introduction to linux2. introduction to linux
2. introduction to linux
 
Enlite: Technische Dokumentation auf Basis von Confluence – K15t Solution For...
Enlite: Technische Dokumentation auf Basis von Confluence – K15t Solution For...Enlite: Technische Dokumentation auf Basis von Confluence – K15t Solution For...
Enlite: Technische Dokumentation auf Basis von Confluence – K15t Solution For...
 
Linux introduction
Linux introductionLinux introduction
Linux introduction
 
2014 SpiceWorld London Breakout
2014 SpiceWorld London Breakout2014 SpiceWorld London Breakout
2014 SpiceWorld London Breakout
 
Pitch open plant_fund_dokubricks_v8
Pitch open plant_fund_dokubricks_v8Pitch open plant_fund_dokubricks_v8
Pitch open plant_fund_dokubricks_v8
 
Docubricks Cambridge Open Plant Pitch
Docubricks Cambridge Open Plant Pitch Docubricks Cambridge Open Plant Pitch
Docubricks Cambridge Open Plant Pitch
 

Recently uploaded

みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
名前 です男
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
Neo4j
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
KAMESHS29
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
Matthew Sinclair
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
danishmna97
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
DianaGray10
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
Neo4j
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
SOFTTECHHUB
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
Alex Pruden
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
Quotidiano Piemontese
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
Neo4j
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Aggregage
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
Adtran
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Vladimir Iglovikov, Ph.D.
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
DianaGray10
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
Octavian Nadolu
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
Matthew Sinclair
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
Aftab Hussain
 

Recently uploaded (20)

みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
みなさんこんにちはこれ何文字まで入るの?40文字以下不可とか本当に意味わからないけどこれ限界文字数書いてないからマジでやばい文字数いけるんじゃないの?えこ...
 
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
GraphSummit Singapore | Enhancing Changi Airport Group's Passenger Experience...
 
RESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for studentsRESUME BUILDER APPLICATION Project for students
RESUME BUILDER APPLICATION Project for students
 
20240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 202420240609 QFM020 Irresponsible AI Reading List May 2024
20240609 QFM020 Irresponsible AI Reading List May 2024
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
How to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptxHow to Get CNIC Information System with Paksim Ga.pptx
How to Get CNIC Information System with Paksim Ga.pptx
 
UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6UiPath Test Automation using UiPath Test Suite series, part 6
UiPath Test Automation using UiPath Test Suite series, part 6
 
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
GraphSummit Singapore | The Future of Agility: Supercharging Digital Transfor...
 
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
Goodbye Windows 11: Make Way for Nitrux Linux 3.5.0!
 
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex ProofszkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
zkStudyClub - Reef: Fast Succinct Non-Interactive Zero-Knowledge Regex Proofs
 
National Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practicesNational Security Agency - NSA mobile device best practices
National Security Agency - NSA mobile device best practices
 
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
GraphSummit Singapore | Neo4j Product Vision & Roadmap - Q2 2024
 
Generative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to ProductionGenerative AI Deep Dive: Advancing from Proof of Concept to Production
Generative AI Deep Dive: Advancing from Proof of Concept to Production
 
Pushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 daysPushing the limits of ePRTC: 100ns holdover for 100 days
Pushing the limits of ePRTC: 100ns holdover for 100 days
 
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AIEnchancing adoption of Open Source Libraries. A case study on Albumentations.AI
Enchancing adoption of Open Source Libraries. A case study on Albumentations.AI
 
UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5UiPath Test Automation using UiPath Test Suite series, part 5
UiPath Test Automation using UiPath Test Suite series, part 5
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Artificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopmentArtificial Intelligence for XMLDevelopment
Artificial Intelligence for XMLDevelopment
 
20240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 202420240607 QFM018 Elixir Reading List May 2024
20240607 QFM018 Elixir Reading List May 2024
 
Removing Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software FuzzingRemoving Uninteresting Bytes in Software Fuzzing
Removing Uninteresting Bytes in Software Fuzzing
 

Writing Open Source Documentation for Open Source Projects

  • 1. Writing Open Source Documentation for Open Source Projects How SUSE® is documented and what we can learn from it Christoph Wickert Technical Writer SUSE Linux GmbH Christoph.Wickert@suse.com
  • 2. 10 WHOAMI Christoph Wickert • 1999: Linux user • 2005: FLOSS Contributor – Fedora – Xfce – LXDE – OLPC • 2010: Senior Engineer at Kolab Systems • 2016: Technical Documentation Writer at SUSE
  • 5. Documentation Overview Available from SUSE website: https://www.suse.com/doc
  • 6. 14 Documentation Overview Official SUSE Product documentation • Getting Started • Quick Install Guides • Deployment Guides • User Guides • Administrator Guides • Tuning Guides • Release Notes • Virtualization Guide • …
  • 8. 16 TOOLCHAIN – DOCBOOK XML DocBook • Semantic markup language for technical documentation • Originally intended for technical documents related to computer hardware and software • Can be used for any other sort of documentation DocBook XML • Based on the eXtensible Markup Language (XML) • Defines content in semantic way similar to HTML • Written as a schema which fulfills two tasks: guided editing and validation • http://docbook.org/
  • 11. 19 TOOLCHAIN – DAPS DAPS examples • daps validate • daps pdf (--greyscale) | html (--single) • daps man | text | mobi | epub | webhelp • daps spellcheck • daps stylecheck • daps xmlformat • daps images • daps optipng
  • 12. 20 TOOLCHAIN – DAPS Advanced daps commands • Find out in which files a certain ID is used daps -d <dc-file> list-file --rootid art.daps.quick • Print a list of all images with modification date daps -d <dc-file> getimages --modified • … and show them in a viewer daps -d <dc-file> getimages --modified --show --viewer ristretto
  • 13. TOOLCHAIN – DAPS SUSE-specific commands • Generate a “localization drop” for translation daps locdrop • Unpack translated drop file daps unpack-lockdrop • Generate online documentation for the SUSE Website daps onlinedoc
  • 14. TOOLCHAIN – SUSE XSLT STYLESHEETS Define the layout for SUSE documentation • Books: Manuals, Guides • Articles: Quick Starts, SUSE Best Practices, Shorter Guides • HTML pages (for all kind of documentation) Package: suse-xsl-stylesheets Book / Manual Article HTML
  • 15. TOOLCHAIN – SUSE STYLE GUIDE
  • 16. TOOLCHAIN – STYLE CHECKER Stylechecker • Checks whether the SUSE Styleguide guidelines are followed • Package suse-doc-style-checker
  • 17. TOOLCHAIN – ADDITIONAL TOOLS Yet more tools • dapsenv – Continuous integration with docker • dbxinluder – Transclusions for DocBook with XInclude 1.1 • docmanager – Manages DocBook 5 Meta Information • docstats – Statistics and Metrics for Documentation Team • geekodoc – RELAX NG Schema for SUSE Documentation • xmldiffng – Diffing XML with RELAX NG schema Everything available from https://github.com/openSUSE/
  • 20. PROCESS – GIT WORKFLOW • ‘Successful git branching modell’ by Vincent Driessen • Development happens in develop • Master branch is only used for releases • Separate branches for – Features: feature/fate#12345 – Bugfixes: bugfix/bsc#123456 – Maintenance: maintenance/SLE12 • Constant naming with git-flow-avh • Merges through GitHub reviews • More info: http://nvie.com/posts/a-successful-git-branching-model/
  • 21. PROCESS – OVERVIEW • Input comes through – FATE (Feature And Enhancement Tracker) – Bugzilla – DocComments • Evaluation & Planning • Research (with developers) • Documentation (Magic happens here!) • Feedback (from developers) • Translation • Publication
  • 22. Report a bug PROCESS – FEEDBACK Provide comments and feedback
  • 24. PROBLEMS We have achieved a lot, still there are problems we need to solve • Continuous integration • Stuck in the Waterfall – Short time frame between when a feature is ready for testing/documenting and release • Decoupled from Development – Both feature and bug :-) – High coordination effort • Monolithic – High maintenance costs
  • 26. 35 Docs or it didn’t happen!
  • 28. 37 You need feedback channels!
  • 29. 38 You need (the right) tools!