Why you should develop on trunk?

Available on: http://pokoli.github.io/developing-on-trunk

Disclaimer

Just personal opinion/experience

Feel free to follow your own rules

What does trunk mean?

The latest development version of tryton

So it makes sense to use it for development doesn't it?

How to obtain trunk?

  • hg (n)clone -b default
  • pip install --find-links https://trydevpi.tryton.org/

How is trunk?

How is trunk?

How is trunk?

  • Like the new tryton release
  • So stable
  • Constantly Evolving (until feature freeze)

How to update:

  • hg (n)pull -u --rebase
  • pip install --upgrade --find-links https://trydevpi.tryton.org/

Remainder: Development Process

  1. BluePrint (discussion)
  2. CodeReview
  3. Automated Test + CI
  4. Feature Freeze
  5. PyPI
  6. No API changes in released versions

Why to use trunk?

  1. More discussions with comunity
  2. Only way to improve clients
  3. Only way to improve API
  4. Features developed by others
  5. Better code thanks to review
  6. Less bugs on releases
  7. Migration before release
  8. Upload your modules to PyPI

Why to use trunk?

Avoid technical debt

What's technical debt?

Extra development work that arises when code that is easy to implement in the short run is used instead of applying the best overall solution

Technical debt

Technical debt

Fix technical debt

Fix technical debt

Great, but...

Great, but...

My code may be broken by trunk changes

  • You will have to fix in the next migration also...
  • Not forced to update your environment
  • It's easier with smaller changes
  • You will use more newer features
  • tryton-commit (mailing list or IRC)

Great, but...

Great, but...

Production environment is on version X.X

  • Migrate to latest stable (as you will do someday)
  • Use branches
  • Backport changes
  • No new features on older versions

Great, but...

(put whatever you want here)

Conclusions

Conclusions

Conclusions

Conclusions

I want to help (Seriously)

I want to help (Seriously)

Thank you!

The presentation code is avaiable on

http://github.com/pokoli/developing-on-trunk