Summer of coding
While the heat is striking down on Europe and many are sitting at the pool to chill, my summer is all about coding. I was looking forward to a summer without travels (because I had those earlier this year with dozens of conferences) and with time to work on pending projects. Here is an overview of my summer of coding.
Pending project: Magento 2 extensions
I think we have been postponing it too much: While we have created a lot of free Magento 2 extensions, migrating our commercial Magento 1 extensions to Magento 2 has been delayed many times.
More extensions are underway: Our WebP extension and ByAttribute 2 extension are 50% complete. Also, we have worked on a connection between Magento 2 and Moneybird (a popular Dutch bookkeeping system) and a new TaxRatesManager extensoin (to make sure EU VAT rates are still valid). Work in progress.
Pending project: Yireo site
First of all, we wanted to renew our Yireo site (this site) and for various reasons. It was getting kind of slow. Also, it was running Joomla while we don't do that anymore. The chosen approach was to replace parts of the site gradually with a plain Slim PHP driven site with static files (Markdown, Plates templating).
The main portion of work was to refactor training pages, the blog and services. And that's done: Numerous pages on our site are now blasting fast. There is still work for improvement, but the strategy was to make sure to get the architecture right and migrate most of the pages.
Pending project: Getting GitLab CI to work
For some years now, we have been running GitLab, an alternative to BitBucket and GitHub. However, it runs on a server that also runs Nginx and Apache - a shared server with many other apps and demos. This complicated the setup of GitLab. I got it working in the end, but the feature of Continuous Integration was always lacking. For commercial projects, this meant using various other CI solutions, which is not cheap.
Finally, I found some time to fix the pending bug (a mistake in the Apache VirtualHost definition, something with proxying from the right port to the wrong port) and now GitLab CI is good to go.
Testing, testing, testing
Leading from this, I went on a rampage to add tests everywhere I could. For various extensions, integration tests and unit tests were already in place. But because GitLab CI makes it possible to run tests after after commit, without the need to wait for it, I added linters (for JS and PHP), code validators (PHP CodeSniffer including ExtDN rules, PHPMD).
Plus I also added "live tests" to perform various tests in live environments (Selenium browser testing but also CLI scripts) to guarantee the health of these systems. It took some time but it now works great.
Good things are ahead
Whoosh. Meanwhile, I am busy playing a lot with React (building various apps with Redux and other React stuff) and GraphQl (displaying WordPress - ugh, blasphemy - content in Magento 2).
Relaxed summer? No way! I'm busy with awesome projects!