49
Contributing to the TYPO3 CMS Core Developer Days 2014, Eindhoven

Contribute to TYPO3 CMS

Embed Size (px)

DESCRIPTION

Overview of how to contribute to the TYPO3 CMS core. Session has been presented during the TYPO3 Developer Days 2014 in Eindhoven/NL

Citation preview

Page 1: Contribute to TYPO3 CMS

Contributing to the TYPO3 CMS Core Developer Days 2014, Eindhoven

Page 2: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

OverviewTypes of Contributing

Tools that are used

Principles & Workflows

Obstacles

Hands on!

Page 3: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

About You?Are you developer, designer, integrator, …?

Do you have experience in Git?

What are your expectations?

Page 4: Contribute to TYPO3 CMS

Challenge

Page 5: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

MotivationMaybe

… you experience a misbehavior

… you try to analyze what’s wrong

… you might run around, cry and get crazy

Better

… you ask the community for feedback

… you report your findings in a constructive way

Page 6: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Motivation

DemandSolution

idea bugfeatureitch

interest

contribute

Page 7: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Types of ContributingCommunication & Discussion

share your idea and experience

give feedback to others

Reporting

help others to reproduce and fix a bug

enrich reports with details and screenshots

request a (missing) feature

Page 8: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Types of ContributingReviewing

evaluate the work of others

give feedback and your vote

Implementing

work on a particular topic

hand in your work for reviews and request comments

Page 9: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Fields of ContributingDevelopment for Functionality

Documentation for Explanation

Usability for Simplicity

Design for Elegancy

Translation for Comprehensibility

Page 10: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Tools for CommunicationMailing Lists & Forum

general discussion and communication

http://lists.typo3.org & nntp://lists.typo3.org

http://forum.typo3.org

Page 11: Contribute to TYPO3 CMS

Core Development list on forum.typo3.org

Page 12: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Tools for CommunicationMailing Lists & Forum

general discussion and communication

http://lists.typo3.org & nntp://lists.typo3.org

http://forum.typo3.org

Ad-Hoc Chats

IRC channels #typo3* on irc.freenode.org

Slack channels and groups on http://typo3.slack.com

Page 13: Contribute to TYPO3 CMS

Public #typo3-cms channel in Slack App

Page 14: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Tools for DocumentationWiki pages

preliminary documentation

blueprints to work out ideas

http://wiki.typo3.org

Page 15: Contribute to TYPO3 CMS
Page 16: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Tools for DocumentationWiki pages

preliminary documentation

blueprints to work out ideas

http://wiki.typo3.org

Product Documentation

references and explanation in reStructuredText (rst)

http://docs.typo3.org and GitHub interaction (partly)

Page 17: Contribute to TYPO3 CMS

Official Documentation on docs.typo3.org

Page 18: Contribute to TYPO3 CMS

Creating a new fork in your GitHub repository

Page 19: Contribute to TYPO3 CMS

Directly edit the reStructuredText

Page 20: Contribute to TYPO3 CMS

Previewing the result and the changes

Page 21: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Tools for DevelopmentRedmine/Forge

issue tracker for everything

bug reports and feature requests

description and screenshots

handling priorities and relations

http://forge.typo3.org

Page 22: Contribute to TYPO3 CMS

Issue tracker on forge.typo3.org

Page 23: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Tools for DevelopmentGit

version control system

master branch for next version development

TYPO3_6-2 branch for bugfixes in release versions

new features are not accepted for released versions

git://git.typo3.org/Packages/TYPO3.CMS.git

see http://wiki.typo3.org/Git to get started with Git

Page 24: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Tools for DevelopmentGerrit

review and quality assurance system

guidelines for merging/accepting a change

positive review of the code and behavior verification

from two different persons, at least one Active Contributor

https://review.typo3.org

Page 25: Contribute to TYPO3 CMS

Change on review.typo3.org

links to forge for details

considered forTYPO3 CMS 6.2 only

two positive code reviews,but not verified (tested) yet

Page 26: Contribute to TYPO3 CMS

Changed files and direct Git command

Page 27: Contribute to TYPO3 CMS

Changes in detail

Page 28: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Tools for DevelopmentTravis CI

continuous integration and quality assurance

executes unit tests and functional tests automatically

can be used by anybody with forks of TYPO3 GitHub mirror

please make sure to disable notifications in .travis.yml

https://travis-ci.org/TYPO3/TYPO3.CMS/builds

Page 29: Contribute to TYPO3 CMS

Automated tests with Travis CI after each merged commit

Page 30: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Tools for Usability & DesignInVision

visual representation of changes

collection of ideas and tasks to be done

http://invisionapp.com (required invitation)

Page 31: Contribute to TYPO3 CMS

Comments on particular visual elements/components

Page 32: Contribute to TYPO3 CMS

WANTED !TYPO3 CMS and the Usability Team needs more designers and UX experts.

Page 33: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Tools for TranslationPootle

translation of phrases and labels

handling of changes and reviews

data is based on XLIFF

http://translation.typo3.org

Page 34: Contribute to TYPO3 CMS

Translation Server at translation.typo3.org

Page 35: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

PrinciplesCommunity

respect and accept the diversity

attend OSS Watch Communications session

see http://typo3.org/community/code-of-conduct/

Communication & Feedback

constructive, supportive and friendly

communicate about discussions (documentation)

Page 36: Contribute to TYPO3 CMS

Diversity in the TYPO3 Community - by Søren Schaffstein

Page 37: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

WorkflowsMeetings in Reality

during code sprints

see https://typo3.org/events/code-sprints/

1-2 Active Contributor Meetings per year #T3ACME

Roadmap & Releases

priorities collected during Active Contributor Meetings

roadmap defined for upcoming version

Page 38: Contribute to TYPO3 CMS

Topic collection and prioritizing during T3ACME14N

Page 39: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Roles & GroupsActive Contributors

Release Manager

TYPO3 CMS Team Leader

TYPO3 CMS Team (Release Team)

https://typo3.org/teams/core-development-team/roles-groups/

Page 40: Contribute to TYPO3 CMS

TYPO3 CMS Active Contributors

Page 41: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Release Cyclerelease phases

alpha - development of everything (4-6 months)

beta - feature freeze & focus on stabilization (2-4 months)

release candidates & final release (0-2 weeks under pressure)

current supported versions

4.5 LTS (until 2015-03), 4.7 (until 2014-10)

6.1 (until 2014-10), 6.2 LTS (until 2017-03)

Page 42: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Release Cycle

4.5 LTS

4.6

6.06.1

4.7

6.2 LTS

6.3evolution

time2011 2014 2015

Page 43: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Release CycleLTS-only-users from TYPO3 4.5 to TYPO3 6.2

ignoring versions 4.6, 4.7, 6.0 and 6.1 = four versions

4.6: caching framework & race conditions

4.7: Extbase persistence features

6.0: file abstraction layer & namespaces

deprecations - methods are removed two versions later

statistics: ~ 60-70% are LTS-only-users

Page 44: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Release Cyclepublic testing feedback

alpha & beta not tested

but release candidates are

feature rush prior to LTS

… it’s about the next three years …

feature freeze phase is too long

bugfix vs. feature/refactoring

Page 45: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Agile Release Cycle

!LTS

!LTS

evolution

time2011 2014 2015

LTS LTSstepssmaller & easier

DRAFT

Page 46: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Agile Release Cyclewish-list & idea

agile, flexible & shorter time constraints

focus on topics & merge windows

snapshot releases are stable

upgrade & downgrade functionality

more and better test coverage

LTS is just a tag to a snapshot

DRAFT

Page 47: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

ObstaclesMy bug report is not processed and not solved!

My code contribution is not reviewed!

The Core Team ignores my ideas!

Page 48: Contribute to TYPO3 CMS

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Hands on!

Page 49: Contribute to TYPO3 CMS

inspiring people to share.