Well, if you read my former post, you will find out that I was out of business for weeks. Taking it in another way: I totally forgot what I did in the last minutes before changing systems and going offline.
So now I came back and was a little frightened about my “wake-up from standby” or “recall” of what happened in my project and what’s to be done next. And suddenly I had the “Wow-Effect”: MyLyn and Bugzilla told me exactly, what to do next. MyLyn also highlighted the sourcesfiles for me and SVN showed me, which files I handled last. “Recall” was no problem any more.
And then “Wow-Effect” part 2 striked me with fortunate and happy surprise: I decided to do some finger-exercise in the first place and to change all integer timestamps to DateTime objects. In the past I would have struggled for hours by thinking and thinking again about all side-effects and consequences and if all might work successfully when I use the refacored software the first time. But now I simply klicked the “Test” button, found some defects, handled them and had an “all green” state just after one hour. Perfect!
Once again: Effect #1: You find and handle the defects as early (=as cheap) as possible. effect #2: You are sure that your software is working properly, thus you can erase this task from MyLyn und from your mind and go on with new tasks completly free of any doubts. Life is so easy. 😀
Thus DO YOUR INVESTMENT IN THE BEGINNING, DO YOUR UNIT-TESTS, IT WILL MAKE YOU GLAD JUST IN THE MINUTE YOU (FREQUENTLY) USE IT! And: YOU WILL USE IT FREQUENTLY, BECAUSE IT’S SO SIMPLE AND MAKES YOU HAPPY!
I went offline for some weeks, ’cause I had to set up a new PC with a new DEV environment. It’s all done now and – just guess – I used a lot of my setup-comments in this blog to find out how to setup my new systems. It worked! 😀 All systems are up and running, let’s go on…
Fixed the Bugzilla / Mylyn bug by upgrading MyLyn from 3.9.1 to 3.9.2.
In the beginning of this project I faced the issue that Mylyn didn’t sync with Bugzilla any more. I just decided to wait and this was successful. Finally Eclipse delivered a patch which fixed this bug. Now I’m ready to go to use Bugzilla in the way I wanted it to be for all open topics. 🙂
Updated the References accordingly…
You won’t be able to understand all details of the development, if you don’t know the basic domain model. Thus please refer to my page The Typo3 Extension “csevents” to learn about csevent’s domain model. This model is the first thing I will implement.
What did we achieve right now? We set up the IDE (Eclipse) including the framework sources and the (old fashioned) csevents sources. We also setup the administration tools like Bugzilla, Ant Deployment, mylyn etc.
Additionally we setup a test environment on a local Typo3 installation combined with an ant build script which copies the current development version from the Eclipse project to the test site.
Now it’s time to start developing the software – or to be more precise: It’s time to refactor the existing extension based on the new framework by using the Test Driven Development. Let’s setup the file structure, write the first tests and develop the software afterwards.
Some years ago I built a quick-and-dirty extension on an old fashioned 3.8 version of Typo3. You can find this extension in the official typo3 extension database: csevents
Now I decided to refactor this extension to meet the following requirements:
- be ready for Typo3 4.5
- fit to extbase and fluid
- use the MVC model
- use the old database structure in the beginning
- find out how to migrate the DB-structure to the new requirements of extbase (this is actually no refactoring, but it is a migration)
- do this all by Test Driven Development and under full Version Control
What I don’t do here: I am not using the principles of Continuous Integration, because it’s a one-man-show, thus I can do the integration cycles on my own and I found a very simple and handsome way to do this (see “I am lazy“).
So I am starting with the last official upload of csevents which is of version 0.0.11. After successful refactoring I will be proud to change this to a 1.0.0! 🙂
Where I am starting from:
The Typo3 Environment
- Typo3 4.5.32 (LTS)
- Typo3 extension extbase 1.3.4
- Typo3 extension fluid 1.3.1
- Typo3 extension phpunit 3.7.22
The Operating System
- Eclipse Kepler Service Release 1
- Eclipse PHP Development Tools (PDT) 3.2.0
- Eclipse Mylyn 3.9.1
- Eclipse Subversive 1.1.1
- Eclipse Ant
- Bugzilla 4.4.1
- Subversion (SVN) 1.6.17
Of course you are free to use another IDE with other modules. I just refer to it here, because all my screenshots will be based on this and I cannot completely deny that I might talk about IDE specific things in some situation…
See References as well…