[TYPO3-core] Workflow for changing documentation

Xavier Perseguers xavier at typo3.org
Mon May 5 09:12:14 CEST 2014


Hi,

Starting a thread in this list instead of the standard documentation
list to gather more feedback on an idea floating in the air since many
months.

tl;dr
-----

- We should move official manuals to Github in order to simplify the
contribution workflow
- Let's discuss that, pros and cons


Background
----------

- Updating the official manuals/guides/... (TSref, Core API, Beginner
Guide, ...) requires:

	- Spotting a problem by reading
	- Filling a ticket on Forge
	- Cloning a Git repository (one has to find which one)
	- Finding the place in the documentation, fixing/enhancing it
	- (Damn!) Configuring Git to contribute to TYPO3
	- Pushing to Gerrit
	- Not speaking about amending patch after comments are made

For Active Contributors and other "power users", this is still quite
some work. I experienced it myself a few weeks ago where I was tempted
to simply "forget about it" since I would have loved simply clone and
push a nobrainer without even a ticket.


Fact
----

- Gerrit is great for our our codebase but much too complicated for
newcomers which could however be exactly targeted at easily providing
feedback on our doc to enhance it

- GitHub's (Bitbucket's / Gitlab's / ...) pull request workflow would be
much easier to use

- Git unlike SVN is fully decentralized, meaning we do not have to fear
anything using another platform to "host" the code since

	- Everyone having a clone has the full history
	- Idea is not to tie us to any external service, just make use of it
"out-of-the-box" and switch back/further whenever we think it's needed
	- git.typo3.org may easily read-only mirror any external repository if
we would feel safer this way, just as
https://github.com/TYPO3-extensions/ is doing the other way around


Proposal
--------

- Move every official documentation (we may start with 3-4 to start
with) to Github
- Remove the requirement for a ticket on Forge when it comes to
day-to-day change but *keep it* when it comes to documenting some change
in the Core API (e.g., new feature)


Rationale
---------

- Let's take an extension of mine, namely "sphinx" that is already
mirrored to Github (discovered that recently):

https://github.com/TYPO3-extensions/sphinx/

tree/master/Documentation/Introduction

Say someone wants to update the introduction chapter, it's just a matter
of browsing to
https://github.com/TYPO3-extensions/sphinx/tree/master/Documentation/Introduction
and clicking on "Index.rst"

which redirects to
https://github.com/TYPO3-extensions/sphinx/blob/master/Documentation/Introduction/Index.rst

>From there one can see the chapter in her browser rendered as HTML
(cool) and sees a "Edit" button which will automatically fork the
repository. From there, you /may/ edit the file and create a pull
request without ever leaving your browser.

=> The whole workflow is straightforward for everyone, including people
having little to no clue about Git.

=> The edit link is like that:
https://github.com/TYPO3-extensions/sphinx/edit/master/Documentation/Introduction/Index.rst
meaning we could relatively easily directly link to it from any page on
docs.typo3.org, as many other projects already do, with a big button
similar to "Enhance me on Github"


Other ideas
-----------

I would have a few other (I guess cool) ideas about this process but
let's defer that to later :)


-- 
Xavier Perseguers
TYPO3 CMS Team Member

TYPO3 .... inspiring people to share!
Get involved: http://typo3.org



More information about the TYPO3-team-core mailing list