Upload
atlassian
View
272
Download
1
Tags:
Embed Size (px)
DESCRIPTION
Over the last year, Stash added new features at a rapid pace, and thousands of new customers embraced Stash for behind-the-firewall Git repository management. There is still a massive opportunity for developers to build add-ons to extend Stash further. Full stack developer Jason Hinch will take you through the latest and greatest from the Stash development team, the main plugin points for extending Stash, and a new Stash API coming later this year.
Citation preview
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