AtlasCamp 2014: Stash State of the Union
-
Upload
atlassian -
Category
Technology
-
view
272 -
download
1
description
Transcript of AtlasCamp 2014: Stash State of the Union
Jason Hinch, Full-stack Developer, Atlassian
Stash State of the Union
ECOSYSTEM HEALTH
Agenda
QUESTIONS
NEXT 12 MONTHS
PLUGIN POINTS
Agenda
QUESTIONS
NEXT 12 MONTHS
PLUGIN POINTS
ECOSYSTEM HEALTH
• Team
• 20+ developers
• Customer base
• 2100+ customers
• Releases
• 3 major, 15 minor, 59 bug fix
Stash is growing
• Empower our ecosystem
• Stable API for major versions
• Java API
• REST API
• Developer docs
Committed to plugins
As of May 2014
86Stash Add-Ons on Marketplace
• 9000+ downloads
• Commercial add-on
• Charts for repository stats
• Commit & line activity
• Contributors
Awesome Graphs
• 3000+ downloads
• Commercial add-on
• Powered by SubGit
• SVN migration
• Incremental
• Once time import
Svn Mirror for Stash
• 10-15 free add-ons
• Experiment with features
• Keep Stash lean
• Validate our plugin points
Add-ons by Atlassian
ECOSYSTEM HEALTH
PLUGIN POINTS
Agenda
QUESTIONS
NEXT 12 MONTHS
• Servlets
• Web Fragments
• Web panels
• Web items
• Web section
• Page decorators
• LESS css
• Soy templates
• Atlassian UI (AUI)
Built on the Atlassian Platform
Repository Hooks
• Pre-receive
• Post-receive
• Pull request merge
• Per repositoryconfiguration
• Since Stash 2.1
Repository Hooks
atlassian-plugin.xml
Implementation
Soy template
Soy files
NamingConventionHook.java
NamingConventionHook.java
NamingConventionHook.java
static/config.soy
Existing values
Validation errors
Cancelable Events
• Implement CancelableEvent
• Correspond to modification request
• Prevent action from being performed
• Veto message sent back to UI
Cancelable Events
• Pull requests
• Permissions
• Repositories
• Projects
What can be canceled
MyListener.java
File Handlers
• Pluggable source rendering pipeline
• Take control any source and diff
• Selectively handle rendering
• Asynchronous by design (promise based)
File Handler
atlassian-plugin.xml
Included whenrendering source
JS files
File handler registry
stl-handler.js
PLUGIN POINTS
NEXT 12 MONTHS
ECOSYSTEM HEALTH
Agenda
QUESTIONS
Stash Data Center
• Problem areas
• Caching / State
• Locking / State control
• Background tasks
• Shared technologies with JIRA/Confluence
• Atlassian Cache
• Atlassian Scheduler
• Atlassian Beehive
• How-to guides coming soon
Cluster-safety
• Test Data
• Number of repositories
• Size of repositories
• Measure
• Execution time
• Memory consumption
• Concurrency
• Techniques
• Paging
• Limiting
• Streaming
• Documentation coming
Scaling for the enterprise
Front-end API
• JavaScript AMD modules
• Stable for major version
• Valid inputs will return same outputs
• Function names will remain the same
• Deprecation warnings
• Documented
JavaScript API
• Standard LESS import
• Stable for major version
• Variable names (not value)
• Mix-in names (not output)
• Deprecation documented
• Release TBA
LESS API
• Great opportunities
• Try writing a plugin for Stash
• Scale with Stash
• Give us feedback
Take aways
NEXT 12 MONTHS
QUESTIONS
PLUGIN POINTS
ECOSYSTEM HEALTH
Question time