Contribute to TYPO3 CMS

Preview:

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

Contributing to the TYPO3 CMS Core Developer Days 2014, Eindhoven

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!

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?

Challenge

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

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Motivation

DemandSolution

idea bugfeatureitch

interest

contribute

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

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

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

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

Core Development list on forum.typo3.org

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

Public #typo3-cms channel in Slack App

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

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)

Official Documentation on docs.typo3.org

Creating a new fork in your GitHub repository

Directly edit the reStructuredText

Previewing the result and the changes

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

Issue tracker on forge.typo3.org

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

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

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

Changed files and direct Git command

Changes in detail

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

Automated tests with Travis CI after each merged commit

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)

Comments on particular visual elements/components

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

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

Translation Server at translation.typo3.org

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)

Diversity in the TYPO3 Community - by Søren Schaffstein

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

Topic collection and prioritizing during T3ACME14N

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/

TYPO3 CMS Active Contributors

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)

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

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

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

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

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

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!

Inspiring people toshare

T3DD14, Eindhoven, NL

Contributing to the TYPO3 CMS Core

TYPO3 CMS

Hands on!

inspiring people to share.

Recommended